Close httplib2 connections.
create(projectsId, locationsId, body=None, x__xgafv=None)
Creates an interaction.
createStream(projectsId, locationsId, body=None, x__xgafv=None)
Creates an interaction and streams the response.
close()
Close httplib2 connections.
create(projectsId, locationsId, body=None, x__xgafv=None)
Creates an interaction.
Args:
projectsId: string, A parameter (required)
locationsId: string, A parameter (required)
body: object, The request body.
The object takes the form of:
{ # Configuration parameters for creating an interaction.
"background": True or False, # Input only. Whether to run the model interaction in the background.
"interaction": { # Response for InteractionService.CreateInteraction. # The interaction to create.
"agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
"agent": "A String", # The name of the `Agent` used for generating the completion.
"deep_research_config": { # Configuration for the Deep Research agent.
"collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
"thinking_summaries": "A String", # Whether to include thought summaries in the response.
"visualization": "A String", # Whether to include visualizations in the response.
},
"dynamic_config": { # Configuration for dynamic agents.
"config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
},
"content": { # The content of the response. # The content for the interaction.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
"contentList": { # A list of Content. # The inputs for the interaction.
"contents": [ # The contents of the list.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
"id": "A String", # Required. Output only. A unique identifier for the interaction completion.
"modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
"generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
"image_config": { # The configuration for image interaction. # Configuration for image interaction.
"aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
"image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
},
"max_output_tokens": 42, # The maximum number of tokens to include in the response.
"seed": 42, # Seed used in decoding for reproducibility.
"speech_config": [ # Configuration for speech interaction.
{ # The configuration for speech interaction.
"language": "A String", # The language of the speech.
"speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
"voice": "A String", # The voice of the speaker.
},
],
"stop_sequences": [ # A list of character sequences that will stop output interaction.
"A String",
],
"temperature": 3.14, # Controls the randomness of the output.
"thinking_level": "A String", # The level of thought tokens that the model should generate.
"thinking_summaries": "A String", # Whether to include thought summaries in the response.
"toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
"allowed_tools": { # The configuration for allowed tools. # The allowed tools.
"mode": "A String", # The mode of the tool choice.
"tools": [ # The names of the allowed tools.
"A String",
],
},
},
"toolChoiceMode": "A String", # The mode of the tool choice.
"top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
},
"model": "A String", # The name of the `Model` used for generating the completion.
},
"outputs": [ # Output only. Responses from the model.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
"previous_interaction_id": "A String", # The ID of the previous interaction, if any.
"responseFormatList": {
"response_formats": [
{
"audio": { # Configuration for audio output format.
"bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
"delivery": "A String", # The delivery mode for the audio output.
"mime_type": "A String", # The MIME type of the audio output.
"sample_rate": 42, # Sample rate in Hz.
},
"image": { # Configuration for image output format.
"aspect_ratio": "A String", # The aspect ratio for the image output.
"delivery": "A String", # The delivery mode for the image output.
"image_size": "A String", # The size of the image output.
"mime_type": "A String", # The MIME type of the image output.
},
"structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"text": { # Configuration for text output format.
"mime_type": "A String", # The MIME type of the text output.
"schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"video": { # Configuration for video output format.
},
},
],
},
"responseFormatSingleton": {
"audio": { # Configuration for audio output format.
"bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
"delivery": "A String", # The delivery mode for the audio output.
"mime_type": "A String", # The MIME type of the audio output.
"sample_rate": 42, # Sample rate in Hz.
},
"image": { # Configuration for image output format.
"aspect_ratio": "A String", # The aspect ratio for the image output.
"delivery": "A String", # The delivery mode for the image output.
"image_size": "A String", # The size of the image output.
"mime_type": "A String", # The MIME type of the image output.
},
"structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"text": { # Configuration for text output format.
"mime_type": "A String", # The MIME type of the text output.
"schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"video": { # Configuration for video output format.
},
},
"response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
"response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
"response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
"A String",
],
"role": "A String", # Output only. The role of the interaction.
"status": "A String", # Required. Output only. The status of the interaction.
"stepList": { # A list of Steps. # Input only. The steps for the interaction.
"steps": [ # The steps of the list.
{ # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
],
},
"steps": [ # Output only. The steps that make up the interaction.
{ # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
],
"stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
"system_instruction": "A String", # System instruction for the interaction.
"tools": [ # A list of tool declarations the model may call during interaction.
{ # A tool that can be used by the model.
"codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
},
"computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
"environment": "A String", # The environment being operated.
"excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
"A String",
],
},
"fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
"file_search_store_names": [ # The file search store names to search.
"A String",
],
"metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
"top_k": 42, # The number of semantic retrieval chunks to retrieve.
},
"function": { # A tool that can be used by the model. # A function that can be used by the model.
"description": "A String", # A description of the function.
"name": "A String", # The name of the function.
"parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
"googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
"enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
"latitude": 3.14, # The latitude of the user's location.
"longitude": 3.14, # The longitude of the user's location.
},
"googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
"search_types": [ # The types of search grounding to enable.
"A String",
],
},
"mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
"allowed_tools": [ # The allowed tools.
{ # The configuration for allowed tools.
"mode": "A String", # The mode of the tool choice.
"tools": [ # The names of the allowed tools.
"A String",
],
},
],
"headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
"a_key": "A String",
},
"name": "A String", # The name of the MCPServer.
"url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
},
"retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
"retrieval_types": [ # The types of file retrieval to enable.
"A String",
],
"vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
"datastores": [ # Optional. Used to specify Vertex AI Search datastores.
"A String",
],
"engine": "A String", # Optional. Used to specify Vertex AI Search engine.
},
},
"urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
},
},
],
"turnList": { # A list of Turns. # The turns for the interaction.
"turns": [
{
"contentList": { # A list of Content. # The content of the turn. An array of Content objects.
"contents": [ # The contents of the list.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"contentString": "A String", # The content of the turn. A single string.
"role": "A String", # The originator of this turn. Must be user for input or model for model output.
},
],
},
"updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
"usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
"cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"grounding_tool_count": [ # Grounding tool count.
{ # The number of grounding tool counts.
"count": 42, # The number of grounding tool counts.
"type": "A String", # The grounding tool type associated with the count.
},
],
"input_tokens_by_modality": [ # A breakdown of input token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"output_tokens_by_modality": [ # A breakdown of output token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
"total_input_tokens": 42, # Number of tokens in the prompt (context).
"total_output_tokens": 42, # Total number of tokens across all the generated responses.
"total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
"total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
"total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
},
},
"store": True or False, # Input only. Whether to store the response and request for later retrieval.
"stream": True or False, # Input only. Whether the interaction will be streamed.
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{ # Response for InteractionService.CreateInteraction.
"agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
"agent": "A String", # The name of the `Agent` used for generating the completion.
"deep_research_config": { # Configuration for the Deep Research agent.
"collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
"thinking_summaries": "A String", # Whether to include thought summaries in the response.
"visualization": "A String", # Whether to include visualizations in the response.
},
"dynamic_config": { # Configuration for dynamic agents.
"config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
},
"content": { # The content of the response. # The content for the interaction.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
"contentList": { # A list of Content. # The inputs for the interaction.
"contents": [ # The contents of the list.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
"id": "A String", # Required. Output only. A unique identifier for the interaction completion.
"modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
"generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
"image_config": { # The configuration for image interaction. # Configuration for image interaction.
"aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
"image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
},
"max_output_tokens": 42, # The maximum number of tokens to include in the response.
"seed": 42, # Seed used in decoding for reproducibility.
"speech_config": [ # Configuration for speech interaction.
{ # The configuration for speech interaction.
"language": "A String", # The language of the speech.
"speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
"voice": "A String", # The voice of the speaker.
},
],
"stop_sequences": [ # A list of character sequences that will stop output interaction.
"A String",
],
"temperature": 3.14, # Controls the randomness of the output.
"thinking_level": "A String", # The level of thought tokens that the model should generate.
"thinking_summaries": "A String", # Whether to include thought summaries in the response.
"toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
"allowed_tools": { # The configuration for allowed tools. # The allowed tools.
"mode": "A String", # The mode of the tool choice.
"tools": [ # The names of the allowed tools.
"A String",
],
},
},
"toolChoiceMode": "A String", # The mode of the tool choice.
"top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
},
"model": "A String", # The name of the `Model` used for generating the completion.
},
"outputs": [ # Output only. Responses from the model.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
"previous_interaction_id": "A String", # The ID of the previous interaction, if any.
"responseFormatList": {
"response_formats": [
{
"audio": { # Configuration for audio output format.
"bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
"delivery": "A String", # The delivery mode for the audio output.
"mime_type": "A String", # The MIME type of the audio output.
"sample_rate": 42, # Sample rate in Hz.
},
"image": { # Configuration for image output format.
"aspect_ratio": "A String", # The aspect ratio for the image output.
"delivery": "A String", # The delivery mode for the image output.
"image_size": "A String", # The size of the image output.
"mime_type": "A String", # The MIME type of the image output.
},
"structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"text": { # Configuration for text output format.
"mime_type": "A String", # The MIME type of the text output.
"schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"video": { # Configuration for video output format.
},
},
],
},
"responseFormatSingleton": {
"audio": { # Configuration for audio output format.
"bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
"delivery": "A String", # The delivery mode for the audio output.
"mime_type": "A String", # The MIME type of the audio output.
"sample_rate": 42, # Sample rate in Hz.
},
"image": { # Configuration for image output format.
"aspect_ratio": "A String", # The aspect ratio for the image output.
"delivery": "A String", # The delivery mode for the image output.
"image_size": "A String", # The size of the image output.
"mime_type": "A String", # The MIME type of the image output.
},
"structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"text": { # Configuration for text output format.
"mime_type": "A String", # The MIME type of the text output.
"schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"video": { # Configuration for video output format.
},
},
"response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
"response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
"response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
"A String",
],
"role": "A String", # Output only. The role of the interaction.
"status": "A String", # Required. Output only. The status of the interaction.
"stepList": { # A list of Steps. # Input only. The steps for the interaction.
"steps": [ # The steps of the list.
{ # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
],
},
"steps": [ # Output only. The steps that make up the interaction.
{ # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
],
"stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
"system_instruction": "A String", # System instruction for the interaction.
"tools": [ # A list of tool declarations the model may call during interaction.
{ # A tool that can be used by the model.
"codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
},
"computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
"environment": "A String", # The environment being operated.
"excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
"A String",
],
},
"fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
"file_search_store_names": [ # The file search store names to search.
"A String",
],
"metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
"top_k": 42, # The number of semantic retrieval chunks to retrieve.
},
"function": { # A tool that can be used by the model. # A function that can be used by the model.
"description": "A String", # A description of the function.
"name": "A String", # The name of the function.
"parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
"googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
"enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
"latitude": 3.14, # The latitude of the user's location.
"longitude": 3.14, # The longitude of the user's location.
},
"googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
"search_types": [ # The types of search grounding to enable.
"A String",
],
},
"mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
"allowed_tools": [ # The allowed tools.
{ # The configuration for allowed tools.
"mode": "A String", # The mode of the tool choice.
"tools": [ # The names of the allowed tools.
"A String",
],
},
],
"headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
"a_key": "A String",
},
"name": "A String", # The name of the MCPServer.
"url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
},
"retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
"retrieval_types": [ # The types of file retrieval to enable.
"A String",
],
"vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
"datastores": [ # Optional. Used to specify Vertex AI Search datastores.
"A String",
],
"engine": "A String", # Optional. Used to specify Vertex AI Search engine.
},
},
"urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
},
},
],
"turnList": { # A list of Turns. # The turns for the interaction.
"turns": [
{
"contentList": { # A list of Content. # The content of the turn. An array of Content objects.
"contents": [ # The contents of the list.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"contentString": "A String", # The content of the turn. A single string.
"role": "A String", # The originator of this turn. Must be user for input or model for model output.
},
],
},
"updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
"usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
"cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"grounding_tool_count": [ # Grounding tool count.
{ # The number of grounding tool counts.
"count": 42, # The number of grounding tool counts.
"type": "A String", # The grounding tool type associated with the count.
},
],
"input_tokens_by_modality": [ # A breakdown of input token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"output_tokens_by_modality": [ # A breakdown of output token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
"total_input_tokens": 42, # Number of tokens in the prompt (context).
"total_output_tokens": 42, # Total number of tokens across all the generated responses.
"total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
"total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
"total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
},
}
createStream(projectsId, locationsId, body=None, x__xgafv=None)
Creates an interaction and streams the response.
Args:
projectsId: string, A parameter (required)
locationsId: string, A parameter (required)
body: object, The request body.
The object takes the form of:
{ # Configuration parameters for creating an interaction.
"background": True or False, # Input only. Whether to run the model interaction in the background.
"interaction": { # Response for InteractionService.CreateInteraction. # The interaction to create.
"agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
"agent": "A String", # The name of the `Agent` used for generating the completion.
"deep_research_config": { # Configuration for the Deep Research agent.
"collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
"thinking_summaries": "A String", # Whether to include thought summaries in the response.
"visualization": "A String", # Whether to include visualizations in the response.
},
"dynamic_config": { # Configuration for dynamic agents.
"config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
},
"content": { # The content of the response. # The content for the interaction.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
"contentList": { # A list of Content. # The inputs for the interaction.
"contents": [ # The contents of the list.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
"id": "A String", # Required. Output only. A unique identifier for the interaction completion.
"modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
"generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
"image_config": { # The configuration for image interaction. # Configuration for image interaction.
"aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
"image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
},
"max_output_tokens": 42, # The maximum number of tokens to include in the response.
"seed": 42, # Seed used in decoding for reproducibility.
"speech_config": [ # Configuration for speech interaction.
{ # The configuration for speech interaction.
"language": "A String", # The language of the speech.
"speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
"voice": "A String", # The voice of the speaker.
},
],
"stop_sequences": [ # A list of character sequences that will stop output interaction.
"A String",
],
"temperature": 3.14, # Controls the randomness of the output.
"thinking_level": "A String", # The level of thought tokens that the model should generate.
"thinking_summaries": "A String", # Whether to include thought summaries in the response.
"toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
"allowed_tools": { # The configuration for allowed tools. # The allowed tools.
"mode": "A String", # The mode of the tool choice.
"tools": [ # The names of the allowed tools.
"A String",
],
},
},
"toolChoiceMode": "A String", # The mode of the tool choice.
"top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
},
"model": "A String", # The name of the `Model` used for generating the completion.
},
"outputs": [ # Output only. Responses from the model.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
"previous_interaction_id": "A String", # The ID of the previous interaction, if any.
"responseFormatList": {
"response_formats": [
{
"audio": { # Configuration for audio output format.
"bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
"delivery": "A String", # The delivery mode for the audio output.
"mime_type": "A String", # The MIME type of the audio output.
"sample_rate": 42, # Sample rate in Hz.
},
"image": { # Configuration for image output format.
"aspect_ratio": "A String", # The aspect ratio for the image output.
"delivery": "A String", # The delivery mode for the image output.
"image_size": "A String", # The size of the image output.
"mime_type": "A String", # The MIME type of the image output.
},
"structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"text": { # Configuration for text output format.
"mime_type": "A String", # The MIME type of the text output.
"schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"video": { # Configuration for video output format.
},
},
],
},
"responseFormatSingleton": {
"audio": { # Configuration for audio output format.
"bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
"delivery": "A String", # The delivery mode for the audio output.
"mime_type": "A String", # The MIME type of the audio output.
"sample_rate": 42, # Sample rate in Hz.
},
"image": { # Configuration for image output format.
"aspect_ratio": "A String", # The aspect ratio for the image output.
"delivery": "A String", # The delivery mode for the image output.
"image_size": "A String", # The size of the image output.
"mime_type": "A String", # The MIME type of the image output.
},
"structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"text": { # Configuration for text output format.
"mime_type": "A String", # The MIME type of the text output.
"schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"video": { # Configuration for video output format.
},
},
"response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
"response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
"response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
"A String",
],
"role": "A String", # Output only. The role of the interaction.
"status": "A String", # Required. Output only. The status of the interaction.
"stepList": { # A list of Steps. # Input only. The steps for the interaction.
"steps": [ # The steps of the list.
{ # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
],
},
"steps": [ # Output only. The steps that make up the interaction.
{ # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
],
"stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
"system_instruction": "A String", # System instruction for the interaction.
"tools": [ # A list of tool declarations the model may call during interaction.
{ # A tool that can be used by the model.
"codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
},
"computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
"environment": "A String", # The environment being operated.
"excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
"A String",
],
},
"fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
"file_search_store_names": [ # The file search store names to search.
"A String",
],
"metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
"top_k": 42, # The number of semantic retrieval chunks to retrieve.
},
"function": { # A tool that can be used by the model. # A function that can be used by the model.
"description": "A String", # A description of the function.
"name": "A String", # The name of the function.
"parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
"googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
"enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
"latitude": 3.14, # The latitude of the user's location.
"longitude": 3.14, # The longitude of the user's location.
},
"googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
"search_types": [ # The types of search grounding to enable.
"A String",
],
},
"mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
"allowed_tools": [ # The allowed tools.
{ # The configuration for allowed tools.
"mode": "A String", # The mode of the tool choice.
"tools": [ # The names of the allowed tools.
"A String",
],
},
],
"headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
"a_key": "A String",
},
"name": "A String", # The name of the MCPServer.
"url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
},
"retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
"retrieval_types": [ # The types of file retrieval to enable.
"A String",
],
"vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
"datastores": [ # Optional. Used to specify Vertex AI Search datastores.
"A String",
],
"engine": "A String", # Optional. Used to specify Vertex AI Search engine.
},
},
"urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
},
},
],
"turnList": { # A list of Turns. # The turns for the interaction.
"turns": [
{
"contentList": { # A list of Content. # The content of the turn. An array of Content objects.
"contents": [ # The contents of the list.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"contentString": "A String", # The content of the turn. A single string.
"role": "A String", # The originator of this turn. Must be user for input or model for model output.
},
],
},
"updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
"usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
"cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"grounding_tool_count": [ # Grounding tool count.
{ # The number of grounding tool counts.
"count": 42, # The number of grounding tool counts.
"type": "A String", # The grounding tool type associated with the count.
},
],
"input_tokens_by_modality": [ # A breakdown of input token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"output_tokens_by_modality": [ # A breakdown of output token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
"total_input_tokens": 42, # Number of tokens in the prompt (context).
"total_output_tokens": 42, # Total number of tokens across all the generated responses.
"total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
"total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
"total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
},
},
"store": True or False, # Input only. Whether to store the response and request for later retrieval.
"stream": True or False, # Input only. Whether the interaction will be streamed.
}
x__xgafv: string, V1 error format.
Allowed values
1 - v1 error format
2 - v2 error format
Returns:
An object of the form:
{
"contentDelta": { # The content block delta data, used for content.delta events.
"delta": { # The delta content data for a content block.
"audio": {
"channels": 42, # The number of audio channels.
"data": "A String",
"mime_type": "A String",
"rate": 42, # Deprecated. Use sample_rate instead. The value is ignored.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String",
},
"document": {
"data": "A String",
"mime_type": "A String",
"uri": "A String",
},
"image": {
"data": "A String",
"mime_type": "A String",
"resolution": "A String", # The resolution of the media.
"uri": "A String",
},
"text": {
"text": "A String",
},
"textAnnotation": {
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
},
"thoughtSignature": {
"signature": "A String", # Signature to match the backend source to be part of the generation.
},
"thoughtSummary": {
"content": { # A new summary item to be added to the thought.
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
},
"toolCall": {
"codeExecutionCall": {
"arguments": { # The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": {
},
"functionCall": {
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String",
},
"googleMapsCall": {
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": {
"arguments": { # The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": {
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String",
"server_name": "A String",
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": {
"arguments": { # The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": {
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": {
"is_error": True or False,
"result": "A String",
},
"fileSearchResult": {
"result": [
{ # The result of the File Search.
},
],
},
"functionResult": {
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False,
"name": "A String",
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": {
"result": [ # The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": {
"is_error": True or False,
"result": [
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": {
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String",
"server_name": "A String",
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": {
"is_error": True or False,
"result": [
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": {
"data": "A String",
"mime_type": "A String",
"resolution": "A String", # The resolution of the media.
"uri": "A String",
},
},
"index": 42,
},
"contentStart": { # The content block start data, used for content.start events.
"content": { # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
"index": 42,
},
"contentStop": { # The content block stop data, used for content.stop events.
"index": 42,
},
"errorEvent": { # The error event data, used for error events.
"error": { # Error message from an interaction.
"code": "A String", # A URI that identifies the error type.
"message": "A String", # A human-readable error message.
},
},
"event_id": "A String", # The event_id token to be used to resume the interaction stream, from this event.
"interactionCompleteEvent": { # The interaction data, used for interaction.complete events.
"interaction": { # Response for InteractionService.CreateInteraction. # Required. The completed interaction with empty outputs to reduce the payload size. Use the preceding ContentDelta events for the actual output.
"agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
"agent": "A String", # The name of the `Agent` used for generating the completion.
"deep_research_config": { # Configuration for the Deep Research agent.
"collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
"thinking_summaries": "A String", # Whether to include thought summaries in the response.
"visualization": "A String", # Whether to include visualizations in the response.
},
"dynamic_config": { # Configuration for dynamic agents.
"config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
},
"content": { # The content of the response. # The content for the interaction.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
"contentList": { # A list of Content. # The inputs for the interaction.
"contents": [ # The contents of the list.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
"id": "A String", # Required. Output only. A unique identifier for the interaction completion.
"modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
"generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
"image_config": { # The configuration for image interaction. # Configuration for image interaction.
"aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
"image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
},
"max_output_tokens": 42, # The maximum number of tokens to include in the response.
"seed": 42, # Seed used in decoding for reproducibility.
"speech_config": [ # Configuration for speech interaction.
{ # The configuration for speech interaction.
"language": "A String", # The language of the speech.
"speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
"voice": "A String", # The voice of the speaker.
},
],
"stop_sequences": [ # A list of character sequences that will stop output interaction.
"A String",
],
"temperature": 3.14, # Controls the randomness of the output.
"thinking_level": "A String", # The level of thought tokens that the model should generate.
"thinking_summaries": "A String", # Whether to include thought summaries in the response.
"toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
"allowed_tools": { # The configuration for allowed tools. # The allowed tools.
"mode": "A String", # The mode of the tool choice.
"tools": [ # The names of the allowed tools.
"A String",
],
},
},
"toolChoiceMode": "A String", # The mode of the tool choice.
"top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
},
"model": "A String", # The name of the `Model` used for generating the completion.
},
"outputs": [ # Output only. Responses from the model.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
"previous_interaction_id": "A String", # The ID of the previous interaction, if any.
"responseFormatList": {
"response_formats": [
{
"audio": { # Configuration for audio output format.
"bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
"delivery": "A String", # The delivery mode for the audio output.
"mime_type": "A String", # The MIME type of the audio output.
"sample_rate": 42, # Sample rate in Hz.
},
"image": { # Configuration for image output format.
"aspect_ratio": "A String", # The aspect ratio for the image output.
"delivery": "A String", # The delivery mode for the image output.
"image_size": "A String", # The size of the image output.
"mime_type": "A String", # The MIME type of the image output.
},
"structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"text": { # Configuration for text output format.
"mime_type": "A String", # The MIME type of the text output.
"schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"video": { # Configuration for video output format.
},
},
],
},
"responseFormatSingleton": {
"audio": { # Configuration for audio output format.
"bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
"delivery": "A String", # The delivery mode for the audio output.
"mime_type": "A String", # The MIME type of the audio output.
"sample_rate": 42, # Sample rate in Hz.
},
"image": { # Configuration for image output format.
"aspect_ratio": "A String", # The aspect ratio for the image output.
"delivery": "A String", # The delivery mode for the image output.
"image_size": "A String", # The size of the image output.
"mime_type": "A String", # The MIME type of the image output.
},
"structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"text": { # Configuration for text output format.
"mime_type": "A String", # The MIME type of the text output.
"schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"video": { # Configuration for video output format.
},
},
"response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
"response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
"response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
"A String",
],
"role": "A String", # Output only. The role of the interaction.
"status": "A String", # Required. Output only. The status of the interaction.
"stepList": { # A list of Steps. # Input only. The steps for the interaction.
"steps": [ # The steps of the list.
{ # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
],
},
"steps": [ # Output only. The steps that make up the interaction.
{ # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
],
"stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
"system_instruction": "A String", # System instruction for the interaction.
"tools": [ # A list of tool declarations the model may call during interaction.
{ # A tool that can be used by the model.
"codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
},
"computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
"environment": "A String", # The environment being operated.
"excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
"A String",
],
},
"fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
"file_search_store_names": [ # The file search store names to search.
"A String",
],
"metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
"top_k": 42, # The number of semantic retrieval chunks to retrieve.
},
"function": { # A tool that can be used by the model. # A function that can be used by the model.
"description": "A String", # A description of the function.
"name": "A String", # The name of the function.
"parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
"googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
"enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
"latitude": 3.14, # The latitude of the user's location.
"longitude": 3.14, # The longitude of the user's location.
},
"googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
"search_types": [ # The types of search grounding to enable.
"A String",
],
},
"mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
"allowed_tools": [ # The allowed tools.
{ # The configuration for allowed tools.
"mode": "A String", # The mode of the tool choice.
"tools": [ # The names of the allowed tools.
"A String",
],
},
],
"headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
"a_key": "A String",
},
"name": "A String", # The name of the MCPServer.
"url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
},
"retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
"retrieval_types": [ # The types of file retrieval to enable.
"A String",
],
"vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
"datastores": [ # Optional. Used to specify Vertex AI Search datastores.
"A String",
],
"engine": "A String", # Optional. Used to specify Vertex AI Search engine.
},
},
"urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
},
},
],
"turnList": { # A list of Turns. # The turns for the interaction.
"turns": [
{
"contentList": { # A list of Content. # The content of the turn. An array of Content objects.
"contents": [ # The contents of the list.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"contentString": "A String", # The content of the turn. A single string.
"role": "A String", # The originator of this turn. Must be user for input or model for model output.
},
],
},
"updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
"usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
"cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"grounding_tool_count": [ # Grounding tool count.
{ # The number of grounding tool counts.
"count": 42, # The number of grounding tool counts.
"type": "A String", # The grounding tool type associated with the count.
},
],
"input_tokens_by_modality": [ # A breakdown of input token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"output_tokens_by_modality": [ # A breakdown of output token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
"total_input_tokens": 42, # Number of tokens in the prompt (context).
"total_output_tokens": 42, # Total number of tokens across all the generated responses.
"total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
"total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
"total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
},
},
},
"interactionCompletedEvent": { # The interaction data, used for interaction.completed events.
"interaction": { # Response for InteractionService.CreateInteraction. # Required. The completed interaction with empty outputs to reduce the payload size. Use the preceding ContentDelta events for the actual output.
"agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
"agent": "A String", # The name of the `Agent` used for generating the completion.
"deep_research_config": { # Configuration for the Deep Research agent.
"collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
"thinking_summaries": "A String", # Whether to include thought summaries in the response.
"visualization": "A String", # Whether to include visualizations in the response.
},
"dynamic_config": { # Configuration for dynamic agents.
"config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
},
"content": { # The content of the response. # The content for the interaction.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
"contentList": { # A list of Content. # The inputs for the interaction.
"contents": [ # The contents of the list.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
"id": "A String", # Required. Output only. A unique identifier for the interaction completion.
"modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
"generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
"image_config": { # The configuration for image interaction. # Configuration for image interaction.
"aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
"image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
},
"max_output_tokens": 42, # The maximum number of tokens to include in the response.
"seed": 42, # Seed used in decoding for reproducibility.
"speech_config": [ # Configuration for speech interaction.
{ # The configuration for speech interaction.
"language": "A String", # The language of the speech.
"speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
"voice": "A String", # The voice of the speaker.
},
],
"stop_sequences": [ # A list of character sequences that will stop output interaction.
"A String",
],
"temperature": 3.14, # Controls the randomness of the output.
"thinking_level": "A String", # The level of thought tokens that the model should generate.
"thinking_summaries": "A String", # Whether to include thought summaries in the response.
"toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
"allowed_tools": { # The configuration for allowed tools. # The allowed tools.
"mode": "A String", # The mode of the tool choice.
"tools": [ # The names of the allowed tools.
"A String",
],
},
},
"toolChoiceMode": "A String", # The mode of the tool choice.
"top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
},
"model": "A String", # The name of the `Model` used for generating the completion.
},
"outputs": [ # Output only. Responses from the model.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
"previous_interaction_id": "A String", # The ID of the previous interaction, if any.
"responseFormatList": {
"response_formats": [
{
"audio": { # Configuration for audio output format.
"bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
"delivery": "A String", # The delivery mode for the audio output.
"mime_type": "A String", # The MIME type of the audio output.
"sample_rate": 42, # Sample rate in Hz.
},
"image": { # Configuration for image output format.
"aspect_ratio": "A String", # The aspect ratio for the image output.
"delivery": "A String", # The delivery mode for the image output.
"image_size": "A String", # The size of the image output.
"mime_type": "A String", # The MIME type of the image output.
},
"structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"text": { # Configuration for text output format.
"mime_type": "A String", # The MIME type of the text output.
"schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"video": { # Configuration for video output format.
},
},
],
},
"responseFormatSingleton": {
"audio": { # Configuration for audio output format.
"bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
"delivery": "A String", # The delivery mode for the audio output.
"mime_type": "A String", # The MIME type of the audio output.
"sample_rate": 42, # Sample rate in Hz.
},
"image": { # Configuration for image output format.
"aspect_ratio": "A String", # The aspect ratio for the image output.
"delivery": "A String", # The delivery mode for the image output.
"image_size": "A String", # The size of the image output.
"mime_type": "A String", # The MIME type of the image output.
},
"structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"text": { # Configuration for text output format.
"mime_type": "A String", # The MIME type of the text output.
"schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"video": { # Configuration for video output format.
},
},
"response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
"response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
"response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
"A String",
],
"role": "A String", # Output only. The role of the interaction.
"status": "A String", # Required. Output only. The status of the interaction.
"stepList": { # A list of Steps. # Input only. The steps for the interaction.
"steps": [ # The steps of the list.
{ # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
],
},
"steps": [ # Output only. The steps that make up the interaction.
{ # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
],
"stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
"system_instruction": "A String", # System instruction for the interaction.
"tools": [ # A list of tool declarations the model may call during interaction.
{ # A tool that can be used by the model.
"codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
},
"computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
"environment": "A String", # The environment being operated.
"excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
"A String",
],
},
"fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
"file_search_store_names": [ # The file search store names to search.
"A String",
],
"metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
"top_k": 42, # The number of semantic retrieval chunks to retrieve.
},
"function": { # A tool that can be used by the model. # A function that can be used by the model.
"description": "A String", # A description of the function.
"name": "A String", # The name of the function.
"parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
"googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
"enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
"latitude": 3.14, # The latitude of the user's location.
"longitude": 3.14, # The longitude of the user's location.
},
"googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
"search_types": [ # The types of search grounding to enable.
"A String",
],
},
"mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
"allowed_tools": [ # The allowed tools.
{ # The configuration for allowed tools.
"mode": "A String", # The mode of the tool choice.
"tools": [ # The names of the allowed tools.
"A String",
],
},
],
"headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
"a_key": "A String",
},
"name": "A String", # The name of the MCPServer.
"url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
},
"retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
"retrieval_types": [ # The types of file retrieval to enable.
"A String",
],
"vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
"datastores": [ # Optional. Used to specify Vertex AI Search datastores.
"A String",
],
"engine": "A String", # Optional. Used to specify Vertex AI Search engine.
},
},
"urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
},
},
],
"turnList": { # A list of Turns. # The turns for the interaction.
"turns": [
{
"contentList": { # A list of Content. # The content of the turn. An array of Content objects.
"contents": [ # The contents of the list.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"contentString": "A String", # The content of the turn. A single string.
"role": "A String", # The originator of this turn. Must be user for input or model for model output.
},
],
},
"updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
"usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
"cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"grounding_tool_count": [ # Grounding tool count.
{ # The number of grounding tool counts.
"count": 42, # The number of grounding tool counts.
"type": "A String", # The grounding tool type associated with the count.
},
],
"input_tokens_by_modality": [ # A breakdown of input token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"output_tokens_by_modality": [ # A breakdown of output token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
"total_input_tokens": 42, # Number of tokens in the prompt (context).
"total_output_tokens": 42, # Total number of tokens across all the generated responses.
"total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
"total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
"total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
},
},
},
"interactionCreatedEvent": { # The interaction data, used for interaction.created events.
"interaction": { # Response for InteractionService.CreateInteraction.
"agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
"agent": "A String", # The name of the `Agent` used for generating the completion.
"deep_research_config": { # Configuration for the Deep Research agent.
"collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
"thinking_summaries": "A String", # Whether to include thought summaries in the response.
"visualization": "A String", # Whether to include visualizations in the response.
},
"dynamic_config": { # Configuration for dynamic agents.
"config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
},
"content": { # The content of the response. # The content for the interaction.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
"contentList": { # A list of Content. # The inputs for the interaction.
"contents": [ # The contents of the list.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
"id": "A String", # Required. Output only. A unique identifier for the interaction completion.
"modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
"generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
"image_config": { # The configuration for image interaction. # Configuration for image interaction.
"aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
"image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
},
"max_output_tokens": 42, # The maximum number of tokens to include in the response.
"seed": 42, # Seed used in decoding for reproducibility.
"speech_config": [ # Configuration for speech interaction.
{ # The configuration for speech interaction.
"language": "A String", # The language of the speech.
"speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
"voice": "A String", # The voice of the speaker.
},
],
"stop_sequences": [ # A list of character sequences that will stop output interaction.
"A String",
],
"temperature": 3.14, # Controls the randomness of the output.
"thinking_level": "A String", # The level of thought tokens that the model should generate.
"thinking_summaries": "A String", # Whether to include thought summaries in the response.
"toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
"allowed_tools": { # The configuration for allowed tools. # The allowed tools.
"mode": "A String", # The mode of the tool choice.
"tools": [ # The names of the allowed tools.
"A String",
],
},
},
"toolChoiceMode": "A String", # The mode of the tool choice.
"top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
},
"model": "A String", # The name of the `Model` used for generating the completion.
},
"outputs": [ # Output only. Responses from the model.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
"previous_interaction_id": "A String", # The ID of the previous interaction, if any.
"responseFormatList": {
"response_formats": [
{
"audio": { # Configuration for audio output format.
"bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
"delivery": "A String", # The delivery mode for the audio output.
"mime_type": "A String", # The MIME type of the audio output.
"sample_rate": 42, # Sample rate in Hz.
},
"image": { # Configuration for image output format.
"aspect_ratio": "A String", # The aspect ratio for the image output.
"delivery": "A String", # The delivery mode for the image output.
"image_size": "A String", # The size of the image output.
"mime_type": "A String", # The MIME type of the image output.
},
"structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"text": { # Configuration for text output format.
"mime_type": "A String", # The MIME type of the text output.
"schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"video": { # Configuration for video output format.
},
},
],
},
"responseFormatSingleton": {
"audio": { # Configuration for audio output format.
"bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
"delivery": "A String", # The delivery mode for the audio output.
"mime_type": "A String", # The MIME type of the audio output.
"sample_rate": 42, # Sample rate in Hz.
},
"image": { # Configuration for image output format.
"aspect_ratio": "A String", # The aspect ratio for the image output.
"delivery": "A String", # The delivery mode for the image output.
"image_size": "A String", # The size of the image output.
"mime_type": "A String", # The MIME type of the image output.
},
"structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"text": { # Configuration for text output format.
"mime_type": "A String", # The MIME type of the text output.
"schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"video": { # Configuration for video output format.
},
},
"response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
"response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
"response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
"A String",
],
"role": "A String", # Output only. The role of the interaction.
"status": "A String", # Required. Output only. The status of the interaction.
"stepList": { # A list of Steps. # Input only. The steps for the interaction.
"steps": [ # The steps of the list.
{ # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
],
},
"steps": [ # Output only. The steps that make up the interaction.
{ # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
],
"stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
"system_instruction": "A String", # System instruction for the interaction.
"tools": [ # A list of tool declarations the model may call during interaction.
{ # A tool that can be used by the model.
"codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
},
"computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
"environment": "A String", # The environment being operated.
"excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
"A String",
],
},
"fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
"file_search_store_names": [ # The file search store names to search.
"A String",
],
"metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
"top_k": 42, # The number of semantic retrieval chunks to retrieve.
},
"function": { # A tool that can be used by the model. # A function that can be used by the model.
"description": "A String", # A description of the function.
"name": "A String", # The name of the function.
"parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
"googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
"enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
"latitude": 3.14, # The latitude of the user's location.
"longitude": 3.14, # The longitude of the user's location.
},
"googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
"search_types": [ # The types of search grounding to enable.
"A String",
],
},
"mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
"allowed_tools": [ # The allowed tools.
{ # The configuration for allowed tools.
"mode": "A String", # The mode of the tool choice.
"tools": [ # The names of the allowed tools.
"A String",
],
},
],
"headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
"a_key": "A String",
},
"name": "A String", # The name of the MCPServer.
"url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
},
"retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
"retrieval_types": [ # The types of file retrieval to enable.
"A String",
],
"vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
"datastores": [ # Optional. Used to specify Vertex AI Search datastores.
"A String",
],
"engine": "A String", # Optional. Used to specify Vertex AI Search engine.
},
},
"urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
},
},
],
"turnList": { # A list of Turns. # The turns for the interaction.
"turns": [
{
"contentList": { # A list of Content. # The content of the turn. An array of Content objects.
"contents": [ # The contents of the list.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"contentString": "A String", # The content of the turn. A single string.
"role": "A String", # The originator of this turn. Must be user for input or model for model output.
},
],
},
"updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
"usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
"cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"grounding_tool_count": [ # Grounding tool count.
{ # The number of grounding tool counts.
"count": 42, # The number of grounding tool counts.
"type": "A String", # The grounding tool type associated with the count.
},
],
"input_tokens_by_modality": [ # A breakdown of input token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"output_tokens_by_modality": [ # A breakdown of output token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
"total_input_tokens": 42, # Number of tokens in the prompt (context).
"total_output_tokens": 42, # Total number of tokens across all the generated responses.
"total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
"total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
"total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
},
},
},
"interactionStartEvent": { # The interaction data, used for interaction.start events.
"interaction": { # Response for InteractionService.CreateInteraction.
"agentInteraction": { # Interaction for generating the completion using agents. # Interaction for generating the completion using agents.
"agent": "A String", # The name of the `Agent` used for generating the completion.
"deep_research_config": { # Configuration for the Deep Research agent.
"collaborative_planning": True or False, # Enables human-in-the-loop planning for the Deep Research agent. If set to true, the Deep Research agent will provide a research plan in its response. The agent will then proceed only if the user confirms the plan in the next turn.
"thinking_summaries": "A String", # Whether to include thought summaries in the response.
"visualization": "A String", # Whether to include visualizations in the response.
},
"dynamic_config": { # Configuration for dynamic agents.
"config": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # For agents that are not supported statically in the API definition.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
},
"content": { # The content of the response. # The content for the interaction.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
"contentList": { # A list of Content. # The inputs for the interaction.
"contents": [ # The contents of the list.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"created": "A String", # Required. Output only. The time at which the response was created in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
"id": "A String", # Required. Output only. A unique identifier for the interaction completion.
"modelInteraction": { # Interaction for generating the completion using models. # Interaction for generating the completion using models.
"generation_config": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
"image_config": { # The configuration for image interaction. # Configuration for image interaction.
"aspect_ratio": "A String", # The aspect ratio of the image to generate. Supported aspect ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, 16:9, 21:9. If not specified, the model will choose a default aspect ratio based on any reference images provided.
"image_size": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
},
"max_output_tokens": 42, # The maximum number of tokens to include in the response.
"seed": 42, # Seed used in decoding for reproducibility.
"speech_config": [ # Configuration for speech interaction.
{ # The configuration for speech interaction.
"language": "A String", # The language of the speech.
"speaker": "A String", # The speaker's name, it should match the speaker name given in the prompt.
"voice": "A String", # The voice of the speaker.
},
],
"stop_sequences": [ # A list of character sequences that will stop output interaction.
"A String",
],
"temperature": 3.14, # Controls the randomness of the output.
"thinking_level": "A String", # The level of thought tokens that the model should generate.
"thinking_summaries": "A String", # Whether to include thought summaries in the response.
"toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
"allowed_tools": { # The configuration for allowed tools. # The allowed tools.
"mode": "A String", # The mode of the tool choice.
"tools": [ # The names of the allowed tools.
"A String",
],
},
},
"toolChoiceMode": "A String", # The mode of the tool choice.
"top_p": 3.14, # The maximum cumulative probability of tokens to consider when sampling.
},
"model": "A String", # The name of the `Model` used for generating the completion.
},
"outputs": [ # Output only. Responses from the model.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
"previous_interaction_id": "A String", # The ID of the previous interaction, if any.
"responseFormatList": {
"response_formats": [
{
"audio": { # Configuration for audio output format.
"bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
"delivery": "A String", # The delivery mode for the audio output.
"mime_type": "A String", # The MIME type of the audio output.
"sample_rate": 42, # Sample rate in Hz.
},
"image": { # Configuration for image output format.
"aspect_ratio": "A String", # The aspect ratio for the image output.
"delivery": "A String", # The delivery mode for the image output.
"image_size": "A String", # The size of the image output.
"mime_type": "A String", # The MIME type of the image output.
},
"structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"text": { # Configuration for text output format.
"mime_type": "A String", # The MIME type of the text output.
"schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"video": { # Configuration for video output format.
},
},
],
},
"responseFormatSingleton": {
"audio": { # Configuration for audio output format.
"bit_rate": 42, # Bit rate in bits per second (bps). Only applicable for compressed formats (MP3, Opus).
"delivery": "A String", # The delivery mode for the audio output.
"mime_type": "A String", # The MIME type of the audio output.
"sample_rate": 42, # Sample rate in Hz.
},
"image": { # Configuration for image output format.
"aspect_ratio": "A String", # The aspect ratio for the image output.
"delivery": "A String", # The delivery mode for the image output.
"image_size": "A String", # The size of the image output.
"mime_type": "A String", # The MIME type of the image output.
},
"structValue": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Multi-discriminator values is already enabled in GAOS
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"text": { # Configuration for text output format.
"mime_type": "A String", # The MIME type of the text output.
"schema": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # The JSON schema that the output should conform to. Only applicable when mime_type is application/json.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"video": { # Configuration for video output format.
},
},
"response_format": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # Enforces that the generated response is a JSON object that complies with the JSON schema specified in this field.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
"response_mime_type": "A String", # The mime type of the response. This is required if response_format is set.
"response_modalities": [ # The requested modalities of the response (TEXT, IMAGE, AUDIO).
"A String",
],
"role": "A String", # Output only. The role of the interaction.
"status": "A String", # Required. Output only. The status of the interaction.
"stepList": { # A list of Steps. # Input only. The steps for the interaction.
"steps": [ # The steps of the list.
{ # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
],
},
"steps": [ # Output only. The steps that make up the interaction.
{ # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
],
"stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
"system_instruction": "A String", # System instruction for the interaction.
"tools": [ # A list of tool declarations the model may call during interaction.
{ # A tool that can be used by the model.
"codeExecution": { # A tool that can be used by the model to execute code. # A tool that can be used by the model to execute code.
},
"computerUse": { # A tool that can be used by the model to interact with the computer. # Tool to support the model interacting directly with the computer.
"environment": "A String", # The environment being operated.
"excluded_predefined_functions": [ # The list of predefined functions that are excluded from the model call.
"A String",
],
},
"fileSearch": { # A tool that can be used by the model to search files. # A tool that can be used by the model to search files.
"file_search_store_names": [ # The file search store names to search.
"A String",
],
"metadata_filter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
"top_k": 42, # The number of semantic retrieval chunks to retrieve.
},
"function": { # A tool that can be used by the model. # A function that can be used by the model.
"description": "A String", # A description of the function.
"name": "A String", # The name of the function.
"parameters": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error. # The JSON Schema for the function's parameters.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
"googleMaps": { # A tool that can be used by the model to call Google Maps. # A tool that can be used by the model to search Google Maps.
"enable_widget": True or False, # Whether to return a widget context token in the tool call result of the response.
"latitude": 3.14, # The latitude of the user's location.
"longitude": 3.14, # The longitude of the user's location.
},
"googleSearch": { # A tool that can be used by the model to search Google. # A tool that can be used by the model to search Google.
"search_types": [ # The types of search grounding to enable.
"A String",
],
},
"mcpServer": { # A MCPServer is a server that can be called by the model to perform actions. # A MCPServer is a server that can be called by the model to perform actions.
"allowed_tools": [ # The allowed tools.
{ # The configuration for allowed tools.
"mode": "A String", # The mode of the tool choice.
"tools": [ # The names of the allowed tools.
"A String",
],
},
],
"headers": { # Optional: Fields for authentication headers, timeouts, etc., if needed.
"a_key": "A String",
},
"name": "A String", # The name of the MCPServer.
"url": "A String", # The full URL for the MCPServer endpoint. Example: "https://api.example.com/mcp"
},
"retrieval": { # A tool that can be used by the model to retrieve files. # A tool that can be used by the model to retrieve files.
"retrieval_types": [ # The types of file retrieval to enable.
"A String",
],
"vertex_ai_search_config": { # Used to specify configuration for VertexAISearch. # Used to specify configuration for VertexAISearch.
"datastores": [ # Optional. Used to specify Vertex AI Search datastores.
"A String",
],
"engine": "A String", # Optional. Used to specify Vertex AI Search engine.
},
},
"urlContext": { # A tool that can be used by the model to fetch URL context. # A tool that can be used by the model to fetch URL context.
},
},
],
"turnList": { # A list of Turns. # The turns for the interaction.
"turns": [
{
"contentList": { # A list of Content. # The content of the turn. An array of Content objects.
"contents": [ # The contents of the list.
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"contentString": "A String", # The content of the turn. A single string.
"role": "A String", # The originator of this turn. Must be user for input or model for model output.
},
],
},
"updated": "A String", # Required. Output only. The time at which the response was last updated in ISO 8601 format (YYYY-MM-DDThh:mm:ssZ).
"usage": { # Statistics on the interaction request's token usage. # Output only. Statistics on the interaction request's token usage.
"cached_tokens_by_modality": [ # A breakdown of cached token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"grounding_tool_count": [ # Grounding tool count.
{ # The number of grounding tool counts.
"count": 42, # The number of grounding tool counts.
"type": "A String", # The grounding tool type associated with the count.
},
],
"input_tokens_by_modality": [ # A breakdown of input token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"output_tokens_by_modality": [ # A breakdown of output token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"tool_use_tokens_by_modality": [ # A breakdown of tool-use token usage by modality.
{ # The token count for a single response modality.
"modality": "A String", # The modality associated with the token count.
"tokens": 42, # Number of tokens for the modality.
},
],
"total_cached_tokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
"total_input_tokens": 42, # Number of tokens in the prompt (context).
"total_output_tokens": 42, # Total number of tokens across all the generated responses.
"total_thought_tokens": 42, # Number of tokens of thoughts for thinking models.
"total_tokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
"total_tool_use_tokens": 42, # Number of tokens present in tool-use prompt(s).
},
},
},
"interactionStatusUpdate": { # The interaction status data, used for interaction.status_update events.
"interaction_id": "A String",
"status": "A String",
},
"stepDelta": { # The step delta data, used for step.delta events.
"delta": {
"argumentsDelta": {
"partial_arguments": "A String",
},
"audio": {
"channels": 42, # The number of audio channels.
"data": "A String",
"mime_type": "A String",
"rate": 42, # Deprecated. Use sample_rate instead. The value is ignored.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String",
},
"document": {
"data": "A String",
"mime_type": "A String",
"uri": "A String",
},
"image": {
"data": "A String",
"mime_type": "A String",
"resolution": "A String", # The resolution of the media.
"uri": "A String",
},
"text": {
"text": "A String",
},
"textAnnotationDelta": {
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
},
"thoughtSignature": {
"signature": "A String", # Signature to match the backend source to be part of the generation.
},
"thoughtSummary": {
"content": { # A new summary item to be added to the thought.
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
},
"video": {
"data": "A String",
"mime_type": "A String",
"resolution": "A String", # The resolution of the media.
"uri": "A String",
},
},
"index": 42,
},
"stepStart": { # The step start data, used for step.start events.
"index": 42,
"step": { # A step in the interaction.
"modelOutput": { # Output generated by the model.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
"thought": { # A thought step.
"signature": "A String", # A signature hash for backend validation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call step.
"codeExecutionCall": { # Code execution call step.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search call step.
},
"functionCall": { # A function tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps call step.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search call step.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call step.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context call step.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result step.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result step.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result step.
},
"functionResult": { # Result of a function tool call.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result step.
"result": [
{ # The result of the Google Maps.
"places": [
{
"name": "A String",
"place_id": "A String",
"review_snippets": [
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String",
},
],
"widget_context_token": "A String",
},
],
},
"googleSearchResult": { # Google Search result step.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result step.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result step.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"userInput": { # Input provided by the user.
"content": [
{ # The content of the response.
"audio": { # An audio content block.
"channels": 42, # The number of audio channels.
"data": "A String", # The audio content.
"mime_type": "A String", # The mime type of the audio.
"sample_rate": 42, # The sample rate of the audio.
"uri": "A String", # The URI of the audio.
},
"document": { # A document content block.
"data": "A String", # The document content.
"mime_type": "A String", # The mime type of the document.
"uri": "A String", # The URI of the document.
},
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
"thought": { # A thought content block.
"signature": "A String", # Signature to match the backend source to be part of the generation.
"summary": [ # A summary of the thought.
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"toolCall": { # Tool call content.
"codeExecutionCall": { # Code execution content.
"arguments": { # The arguments to pass to the code execution. # Required. The arguments to pass to the code execution.
"code": "A String", # The code to be executed.
"language": "A String", # Programming language of the `code`.
},
},
"fileSearchCall": { # File Search content.
},
"functionCall": { # A function tool call content block.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The arguments to pass to the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool to call.
},
"googleMapsCall": { # Google Maps content.
"arguments": { # The arguments to pass to the Google Maps tool. # The arguments to pass to the Google Maps tool.
"queries": [ # The queries to be executed.
"A String",
],
},
},
"googleSearchCall": { # Google Search content.
"arguments": { # The arguments to pass to Google Search. # Required. The arguments to pass to Google Search.
"queries": [ # Web search queries for the following-up web search.
"A String",
],
},
"search_type": "A String", # The type of search grounding enabled.
},
"id": "A String", # Required. A unique ID for this specific tool call.
"mcpServerToolCall": { # MCPServer tool call content.
"arguments": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # Required. The JSON object of arguments for the function.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"name": "A String", # Required. The name of the tool which was called.
"server_name": "A String", # Required. The name of the used MCP server.
},
"signature": "A String", # A signature hash for backend validation.
"urlContextCall": { # URL context content.
"arguments": { # The arguments to pass to the URL context. # Required. The arguments to pass to the URL context.
"urls": [ # The URLs to fetch.
"A String",
],
},
},
},
"toolResult": { # Tool result content.
"call_id": "A String", # Required. ID to match the ID from the function call block.
"codeExecutionResult": { # Code execution result content.
"is_error": True or False, # Whether the code execution resulted in an error.
"result": "A String", # Required. The output of the code execution.
},
"fileSearchResult": { # File Search result content.
"result": [ # Optional. The results of the File Search.
{ # The result of the File Search.
},
],
},
"functionResult": { # A function tool result content block.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"is_error": True or False, # Whether the tool call resulted in an error.
"name": "A String", # The name of the tool that was called.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"googleMapsResult": { # Google Maps result content.
"result": [ # Required. The results of the Google Maps.
{ # The result of the Google Maps.
"places": [ # The places that were found.
{
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
],
"widget_context_token": "A String", # Resource name of the Google Maps widget context token.
},
],
},
"googleSearchResult": { # Google Search result content.
"is_error": True or False, # Whether the Google Search resulted in an error.
"result": [ # Required. The results of the Google Search.
{ # The result of the Google Search.
"search_suggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
},
],
},
"mcpServerToolResult": { # MCPServer tool result content.
"contentList": {
"contents": [
{
"image": { # An image content block.
"data": "A String", # The image content.
"mime_type": "A String", # The mime type of the image.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the image.
},
"text": { # A text content block.
"annotations": [ # Citation information for model-generated content.
{ # Citation information for model-generated content.
"end_index": 42, # End of the attributed segment, exclusive.
"file_citation": { # A file citation annotation. # A file citation annotation.
"custom_metadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
"document_uri": "A String", # The URI of the file.
"file_name": "A String", # The name of the file.
"media_id": "A String", # Media ID in-case of image citations, if applicable.
"page_number": 42, # Page number of the cited document, if applicable.
"source": "A String", # Source attributed for a portion of the text.
},
"place_citation": { # A place citation annotation. # A place citation annotation.
"name": "A String", # Title of the place.
"place_id": "A String", # The ID of the place, in `places/{place_id}` format.
"review_snippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
{ # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
"review_id": "A String", # The ID of the review snippet.
"title": "A String", # Title of the review.
"url": "A String", # A link that corresponds to the user review on Google Maps.
},
],
"url": "A String", # URI reference of the place.
},
"start_index": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
"url_citation": { # A URL citation annotation. # A URL citation annotation.
"title": "A String", # The title of the URL.
"url": "A String", # The URL.
},
},
],
"text": "A String", # Required. The text content.
},
},
],
},
"name": "A String", # Name of the tool which is called for this specific tool call.
"server_name": "A String", # The name of the used MCP server.
"stringResult": "A String",
"structResult": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values.
"fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
{ # Represents a single field in a struct.
"name": "A String",
"value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
"boolValue": True or False, # Represents a boolean value.
"listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
"values": [ # Repeated field of dynamically typed values.
# Object with schema name: GenaiValue
],
},
"nullValue": "A String", # Represents a null value.
"numberValue": 3.14, # Represents a double value.
"stringValue": "A String", # Represents a string value.
"structValue": # Object with schema name: GenaiStruct # Represents a structured value.
},
},
],
},
},
"signature": "A String", # A signature hash for backend validation.
"urlContextResult": { # URL context result content.
"is_error": True or False, # Whether the URL context resulted in an error.
"result": [ # Required. The results of the URL context.
{ # The result of the URL context.
"status": "A String", # The status of the URL retrieval.
"url": "A String", # The URL that was fetched.
},
],
},
},
"video": { # A video content block.
"data": "A String", # The video content.
"mime_type": "A String", # The mime type of the video.
"resolution": "A String", # The resolution of the media.
"uri": "A String", # The URI of the video.
},
},
],
},
},
},
"stepStop": { # The step stop data, used for step.stop events.
"index": 42,
},
}