Agent Platform API . interactions

Instance Methods

cancel(name, x__xgafv=None)

Cancels an interaction.

close()

Close httplib2 connections.

getPoll(name, includeInput=None, lastEventId=None, stream=None, x__xgafv=None)

Fully typed proto, unary version of GetInteraction that returns Interaction proto.

getStream(name, includeInput=None, lastEventId=None, stream=None, x__xgafv=None)

Fully typed proto, streaming version of GetInteraction that returns Interaction proto.

Method Details

cancel(name, x__xgafv=None)
Cancels an interaction.

Args:
  name: string, Required. The name of the interaction to cancel. Format: `interactions/{interaction}`. (required)
  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.
    "code_mender_config": { # Configuration for the CodeMender agent.
      "find_request": { # Request parameters specific to FIND sessions, used for discovering vulnerabilities in a codebase. # Parameters for finding vulnerabilities.
        "description": "A String", # Additional context or custom instructions provided by the user to guide the vulnerability analysis.
        "finding_id": "A String", # The identifier of a specific finding to verify. This is primarily used in VERIFY mode to focus the agent's execution-based validation on a single vulnerability.
        "source_files": [ # A list of source files to provide as context for the scan.
          { # Content of a single file in the codebase.
            "content": "A String", # The UTF-8 encoded text content of the file.
            "path": "A String", # The relative path of the file from the project root.
          },
        ],
      },
      "fix_request": { # Request parameters specific to FIX sessions, used for generating and validating security patches. # Parameters for fixing vulnerabilities.
        "description": "A String", # Additional context or custom instructions provided by the user to guide the patch generation process.
        "finding_id": "A String", # The identifier of the specific security finding to be remediated. This ID maps to a previously discovered vulnerability.
        "source_files": [ # A list of source files providing context for the remediation. These files are typically the ones containing the identified vulnerability.
          { # Content of a single file in the codebase.
            "content": "A String", # The UTF-8 encoded text content of the file.
            "path": "A String", # The relative path of the file from the project root.
          },
        ],
      },
      "model": "A String", # The name of the model to use for the CodeMender agent. One CodeMender session will only use one model.
      "session_config": { # The configuration of CodeMender sessions. # Optional session-specific configurations to override default agent behavior.
        "max_rounds": 42, # The maximum number of interaction rounds the agent is allowed to perform before reaching a timeout.
        "pipeline_mode": "A String", # The pipeline mode of a CodeMender session. It can only be used for a find session.
        "topology": "A String", # The cognitive architecture or "thinking" topology used by the agent (e.g. "default", "deep").
      },
      "session_id": "A String", # Parameter for grouping multiple interactions that belong to the same CodeMender session.
    },
    "deepResearchConfig": { # Configuration for the Deep Research agent.
      "collaborativePlanning": 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.
      "enableBigqueryTool": True or False, # Enables bigquery tool for the Deep Research agent.
      "thinkingSummaries": "A String", # Whether to include thought summaries in the response.
      "visualization": "A String", # Whether to include visualizations in the response.
    },
    "dynamicConfig": { # 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: GenaiVertexV1beta1Value
                ],
              },
              "nullValue": "A String", # Represents a null value.
              "numberValue": 3.14, # Represents a double value.
              "stringValue": "A String", # Represents a string value.
              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
      "mimeType": "A String", # The mime type of the audio.
      "sampleRate": 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.
      "mimeType": "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.
      "mimeType": "A String", # The mime type of the image.
      "resolution": "A String", # The resolution of the media.
      "uri": "A String", # The URI of the image.
    },
    "text": { # A text content block.
      "annotations": [ # Citation information for model-generated content.
        { # Citation information for model-generated content.
          "endIndex": 42, # End of the attributed segment, exclusive.
          "fileCitation": { # A file citation annotation. # A file citation annotation.
            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
            "documentUri": "A String", # The URI of the file.
            "fileName": "A String", # The name of the file.
            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
            "pageNumber": 42, # Page number of the cited document, if applicable.
            "source": "A String", # Source attributed for a portion of the text.
          },
          "placeCitation": { # A place citation annotation. # A place citation annotation.
            "name": "A String", # Title of the place.
            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                "reviewId": "A String", # The ID of the review snippet.
                "title": "A String", # Title of the review.
                "url": "A String", # A link that corresponds to the user review on Google Maps.
              },
            ],
            "url": "A String", # URI reference of the place.
          },
          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
          "urlCitation": { # A URL citation annotation. # 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.
            "mimeType": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "endIndex": 42, # End of the attributed segment, exclusive.
                "fileCitation": { # A file citation annotation. # A file citation annotation.
                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "documentUri": "A String", # The URI of the file.
                  "fileName": "A String", # The name of the file.
                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                  "pageNumber": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "placeCitation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
          ],
        },
        "searchType": "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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
              },
            },
          ],
        },
        "name": "A String", # Required. The name of the tool which was called.
        "serverName": "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.
      "callId": "A String", # Required. ID to match the ID from the function call block.
      "codeExecutionResult": { # Code execution result content.
        "isError": 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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                      "title": "A String", # The title of the URL.
                      "url": "A String", # The URL.
                    },
                  },
                ],
                "text": "A String", # Required. The text content.
              },
            },
          ],
        },
        "isError": 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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                    "reviewId": "A String", # The ID of the review snippet.
                    "title": "A String", # Title of the review.
                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                  },
                ],
                "url": "A String", # URI reference of the place.
              },
            ],
            "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
          },
        ],
      },
      "googleSearchResult": { # Google Search result content.
        "isError": 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.
            "searchSuggestions": "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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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.
        "serverName": "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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
              },
            },
          ],
        },
      },
      "signature": "A String", # A signature hash for backend validation.
      "urlContextResult": { # URL context result content.
        "isError": 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.
      "mimeType": "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.
          "mimeType": "A String", # The mime type of the audio.
          "sampleRate": 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.
          "mimeType": "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.
          "mimeType": "A String", # The mime type of the image.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the image.
        },
        "text": { # A text content block.
          "annotations": [ # Citation information for model-generated content.
            { # Citation information for model-generated content.
              "endIndex": 42, # End of the attributed segment, exclusive.
              "fileCitation": { # A file citation annotation. # A file citation annotation.
                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "documentUri": "A String", # The URI of the file.
                "fileName": "A String", # The name of the file.
                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                "pageNumber": 42, # Page number of the cited document, if applicable.
                "source": "A String", # Source attributed for a portion of the text.
              },
              "placeCitation": { # A place citation annotation. # A place citation annotation.
                "name": "A String", # Title of the place.
                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                    "reviewId": "A String", # The ID of the review snippet.
                    "title": "A String", # Title of the review.
                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                  },
                ],
                "url": "A String", # URI reference of the place.
              },
              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
              "urlCitation": { # A URL citation annotation. # 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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
              ],
            },
            "searchType": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool which was called.
            "serverName": "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.
          "callId": "A String", # Required. ID to match the ID from the function call block.
          "codeExecutionResult": { # Code execution result content.
            "isError": 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "isError": 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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                ],
                "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
              },
            ],
          },
          "googleSearchResult": { # Google Search result content.
            "isError": 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.
                "searchSuggestions": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
            "serverName": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextResult": { # URL context result content.
            "isError": 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.
          "mimeType": "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).
  "envId": "A String", # The environment ID for the interaction. Can be 'remote' for default environment.
  "environmentId": "A String", # Output only. The environment ID for the interaction. Only populated if environment config is set in the request.
  "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.
    "cached_content": "A String", # The name of the cached content used as context to serve the prediction. Note: only used in explicit caching, where users can have control over caching (e.g. what content to cache) and enjoy guaranteed cost savings. Format: `projects/{project}/locations/{location}/cachedContents/{cachedContent}`
    "generationConfig": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
      "frequency_penalty": 3.14, # Penalizes tokens based on their frequency in the generated text. A positive value helps to reduce the repetition of words and phrases. Valid values can range from [-2.0, 2.0].
      "imageConfig": { # The configuration for image interaction. # Configuration for image interaction.
        "aspectRatio": "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.
        "imageSize": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
      },
      "maxOutputTokens": 42, # The maximum number of tokens to include in the response.
      "presence_penalty": 3.14, # Penalizes tokens that have already appeared in the generated text. A positive value encourages the model to generate more diverse and less repetitive text. Valid values can range from [-2.0, 2.0].
      "seed": 42, # Seed used in decoding for reproducibility.
      "speechConfig": [ # 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.
        },
      ],
      "stopSequences": [ # A list of character sequences that will stop output interaction.
        "A String",
      ],
      "temperature": 3.14, # Controls the randomness of the output.
      "thinkingLevel": "A String", # The level of thought tokens that the model should generate.
      "thinkingSummaries": "A String", # Whether to include thought summaries in the response.
      "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
        "allowedTools": { # 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.
      "topP": 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.
        "mimeType": "A String", # The mime type of the audio.
        "sampleRate": 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.
        "mimeType": "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.
        "mimeType": "A String", # The mime type of the image.
        "resolution": "A String", # The resolution of the media.
        "uri": "A String", # The URI of the image.
      },
      "text": { # A text content block.
        "annotations": [ # Citation information for model-generated content.
          { # Citation information for model-generated content.
            "endIndex": 42, # End of the attributed segment, exclusive.
            "fileCitation": { # A file citation annotation. # A file citation annotation.
              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "documentUri": "A String", # The URI of the file.
              "fileName": "A String", # The name of the file.
              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
              "pageNumber": 42, # Page number of the cited document, if applicable.
              "source": "A String", # Source attributed for a portion of the text.
            },
            "placeCitation": { # A place citation annotation. # A place citation annotation.
              "name": "A String", # Title of the place.
              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                  "reviewId": "A String", # The ID of the review snippet.
                  "title": "A String", # Title of the review.
                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                },
              ],
              "url": "A String", # URI reference of the place.
            },
            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
            "urlCitation": { # A URL citation annotation. # 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.
              "mimeType": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "endIndex": 42, # End of the attributed segment, exclusive.
                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "documentUri": "A String", # The URI of the file.
                    "fileName": "A String", # The name of the file.
                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                    "pageNumber": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
            ],
          },
          "searchType": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
          "name": "A String", # Required. The name of the tool which was called.
          "serverName": "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.
        "callId": "A String", # Required. ID to match the ID from the function call block.
        "codeExecutionResult": { # Code execution result content.
          "isError": 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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "isError": 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
              ],
              "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
            },
          ],
        },
        "googleSearchResult": { # Google Search result content.
          "isError": 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.
              "searchSuggestions": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
          "serverName": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
        "signature": "A String", # A signature hash for backend validation.
        "urlContextResult": { # URL context result content.
          "isError": 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.
        "mimeType": "A String", # The mime type of the video.
        "resolution": "A String", # The resolution of the media.
        "uri": "A String", # The URI of the video.
      },
    },
  ],
  "previousInteractionId": "A String", # The ID of the previous interaction, if any.
  "remoteEnvironment": { # Configuration for a custom environment.
    "networkAllowlist": { # Network egress configuration for the environment. # Allow only specific domains.
      "allowlist": [ # List of allowed domains and their configurations.
        { # A network egress rule that controls which external domains the environment is allowed to reach. Each rule identifies a target domain and, optionally, a set of HTTP headers to inject into every matching outbound request.
          "domain": "A String", # The domain pattern to match for this rule. Use an exact hostname (e.g., `github.com`), a wildcard prefix (e.g., `*.googleapis.com`), or `*` to match all domains.
          "transform": { # Headers to inject into requests matching this rule. Key: header name (e.g., "Authorization"). Value: header value (e.g., "Bearer your-token").
            "a_key": "A String",
          },
        },
      ],
    },
    "networkMode": "A String", # Network egress mode.
    "sources": [
      { # A source to be mounted into the environment.
        "content": "A String", # The inline content if `type` is `INLINE`.
        "encoding": "A String", # Optional encoding for inline content (e.g. `base64`).
        "source": "A String", # The source of the environment. For GCS, this is the GCS path. For GitHub, this is the GitHub path.
        "target": "A String", # Where the source should appear in the environment.
        "type": "A String",
      },
    ],
  },
  "responseFormat": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, 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: GenaiVertexV1beta1Value
      ],
    },
    "nullValue": "A String", # Represents a null value.
    "numberValue": 3.14, # Represents a double value.
    "stringValue": "A String", # Represents a string value.
    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
  },
  "responseFormatList": {
    "responseFormats": [
      {
        "audio": { # Configuration for audio output format.
          "bitRate": 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.
          "mimeType": "A String", # The MIME type of the audio output.
          "sampleRate": 42, # Sample rate in Hz.
        },
        "image": { # Configuration for image output format.
          "aspectRatio": "A String", # The aspect ratio for the image output.
          "delivery": "A String", # The delivery mode for the image output.
          "imageSize": "A String", # The size of the image output.
          "mimeType": "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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
              },
            },
          ],
        },
        "text": { # Configuration for text output format.
          "mimeType": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
      },
    ],
  },
  "responseFormatSingleton": {
    "audio": { # Configuration for audio output format.
      "bitRate": 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.
      "mimeType": "A String", # The MIME type of the audio output.
      "sampleRate": 42, # Sample rate in Hz.
    },
    "image": { # Configuration for image output format.
      "aspectRatio": "A String", # The aspect ratio for the image output.
      "delivery": "A String", # The delivery mode for the image output.
      "imageSize": "A String", # The size of the image output.
      "mimeType": "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: GenaiVertexV1beta1Value
              ],
            },
            "nullValue": "A String", # Represents a null value.
            "numberValue": 3.14, # Represents a double value.
            "stringValue": "A String", # Represents a string value.
            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
          },
        },
      ],
    },
    "text": { # Configuration for text output format.
      "mimeType": "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: GenaiVertexV1beta1Value
                ],
              },
              "nullValue": "A String", # Represents a null value.
              "numberValue": 3.14, # Represents a double value.
              "stringValue": "A String", # Represents a string value.
              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
            },
          },
        ],
      },
    },
  },
  "responseMimeType": "A String", # The mime type of the response. This is required if response_format is set.
  "responseModalities": [ # 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.
                "mimeType": "A String", # The mime type of the audio.
                "sampleRate": 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.
                "mimeType": "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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                    ],
                  },
                  "searchType": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "serverName": "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.
                "callId": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result content.
                  "isError": 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "isError": 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                      ],
                      "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result content.
                  "isError": 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.
                      "searchSuggestions": "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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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.
                  "serverName": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result content.
                  "isError": 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.
                "mimeType": "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.
            { # The content of the response.
              "audio": { # An audio content block.
                "channels": 42, # The number of audio channels.
                "data": "A String", # The audio content.
                "mimeType": "A String", # The mime type of the audio.
                "sampleRate": 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.
                "mimeType": "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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                    ],
                  },
                  "searchType": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "serverName": "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.
                "callId": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result content.
                  "isError": 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "isError": 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                      ],
                      "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result content.
                  "isError": 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.
                      "searchSuggestions": "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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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.
                  "serverName": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result content.
                  "isError": 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.
                "mimeType": "A String", # The mime type of the video.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the video.
              },
            },
          ],
        },
        "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
              ],
            },
            "searchType": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool which was called.
            "serverName": "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.
          "callId": "A String", # Required. ID to match the ID from the function call block.
          "codeExecutionResult": { # Code execution result step.
            "isError": 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": { # A list of Content.
              "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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "isError": 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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "googleMapsResult": { # Google Maps result step.
            "result": [
              { # The result of the Google Maps.
                "places": [
                  {
                    "name": "A String",
                    "placeId": "A String",
                    "reviewSnippets": [
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String",
                  },
                ],
                "widgetContextToken": "A String",
              },
            ],
          },
          "googleSearchResult": { # Google Search result step.
            "isError": 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.
                "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
              },
            ],
          },
          "mcpServerToolResult": { # MCPServer tool result step.
            "contentList": { # A list of Content.
              "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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "name": "A String", # Name of the tool which is called for this specific tool call.
            "serverName": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextResult": { # URL context result step.
            "isError": 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. # DO NOT USE -- These are for 3P JSON only
          "contentList": { # A list of Content. # The content of the step. 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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "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 step. A single string.
        },
      },
    ],
  },
  "steps": [ # Required. 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.
              "mimeType": "A String", # The mime type of the audio.
              "sampleRate": 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.
              "mimeType": "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.
              "mimeType": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "endIndex": 42, # End of the attributed segment, exclusive.
                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "documentUri": "A String", # The URI of the file.
                    "fileName": "A String", # The name of the file.
                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                    "pageNumber": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "urlCitation": { # A URL citation annotation. # 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                  ],
                },
                "searchType": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "serverName": "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.
              "callId": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "isError": 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "isError": 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "isError": 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.
                    "searchSuggestions": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                "serverName": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "isError": 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.
              "mimeType": "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.
          { # The content of the response.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mimeType": "A String", # The mime type of the audio.
              "sampleRate": 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.
              "mimeType": "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.
              "mimeType": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "endIndex": 42, # End of the attributed segment, exclusive.
                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "documentUri": "A String", # The URI of the file.
                    "fileName": "A String", # The name of the file.
                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                    "pageNumber": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "urlCitation": { # A URL citation annotation. # 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                  ],
                },
                "searchType": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "serverName": "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.
              "callId": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "isError": 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "isError": 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "isError": 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.
                    "searchSuggestions": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                "serverName": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "isError": 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.
              "mimeType": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
        ],
      },
      "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
            ],
          },
          "searchType": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
          "name": "A String", # Required. The name of the tool which was called.
          "serverName": "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.
        "callId": "A String", # Required. ID to match the ID from the function call block.
        "codeExecutionResult": { # Code execution result step.
          "isError": 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": { # A list of Content.
            "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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "isError": 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
        "googleMapsResult": { # Google Maps result step.
          "result": [
            { # The result of the Google Maps.
              "places": [
                {
                  "name": "A String",
                  "placeId": "A String",
                  "reviewSnippets": [
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String",
                },
              ],
              "widgetContextToken": "A String",
            },
          ],
        },
        "googleSearchResult": { # Google Search result step.
          "isError": 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.
              "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
            },
          ],
        },
        "mcpServerToolResult": { # MCPServer tool result step.
          "contentList": { # A list of Content.
            "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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "name": "A String", # Name of the tool which is called for this specific tool call.
          "serverName": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
        "signature": "A String", # A signature hash for backend validation.
        "urlContextResult": { # URL context result step.
          "isError": 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. # DO NOT USE -- These are for 3P JSON only
        "contentList": { # A list of Content. # The content of the step. 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.
                "mimeType": "A String", # The mime type of the audio.
                "sampleRate": 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.
                "mimeType": "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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                    ],
                  },
                  "searchType": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "serverName": "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.
                "callId": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result content.
                  "isError": 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "isError": 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                      ],
                      "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result content.
                  "isError": 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.
                      "searchSuggestions": "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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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.
                  "serverName": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result content.
                  "isError": 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.
                "mimeType": "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 step. A single string.
      },
    },
  ],
  "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
  "systemInstruction": "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.
        "excludedPredefinedFunctions": [ # 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.
        "fileSearchStoreNames": [ # The file search store names to search.
          "A String",
        ],
        "metadataFilter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
        "topK": 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: GenaiVertexV1beta1Value
            ],
          },
          "nullValue": "A String", # Represents a null value.
          "numberValue": 3.14, # Represents a double value.
          "stringValue": "A String", # Represents a string value.
          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
        "enableWidget": 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.
        "searchTypes": [ # 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.
        "allowedTools": [ # 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.
        "exa_ai_search_config": { # Used to specify configuration for ExaAISearch. # Used to specify configuration for ExaAISearch.
          "api_key": "A String", # Required. The API key for ExaAiSearch.
          "custom_config": { # Optional. This field can be used to pass any parameter from the Exa.ai Search API.
            "a_key": "", # Properties of the object.
          },
        },
        "parallel_ai_search_config": { # Used to specify configuration for ParallelAISearch. # Used to specify configuration for ParallelAISearch.
          "api_key": "A String", # Optional. The API key for ParallelAiSearch.
          "custom_config": { # Optional. Custom configs for ParallelAiSearch.
            "a_key": "", # Properties of the object.
          },
        },
        "rag_store_config": { # Use to specify configuration for RAG Store. # Used to specify configuration for RagStore.
          "rag_resources": [ # Optional. The representation of the rag source.
            { # The definition of the Rag resource.
              "rag_corpus": "A String", # Optional. RagCorpora resource name.
              "rag_file_ids": [ # Optional. rag_file_id. The files should be in the same rag_corpus set in rag_corpus field.
                "A String",
              ],
            },
          ],
          "rag_retrieval_config": { # Specifies the context retrieval config. # Optional. The retrieval config for the Rag query.
            "filter": { # Config for filters. # Optional. Config for filters.
              "metadata_filter": "A String", # Optional. String for metadata filtering.
              "vector_distance_threshold": 3.14, # Optional. Only returns contexts with vector distance smaller than the threshold.
              "vector_similarity_threshold": 3.14, # Optional. Only returns contexts with vector similarity larger than the threshold.
            },
            "hybrid_search": { # Config for Hybrid Search. # Optional. Config for Hybrid Search.
              "alpha": 3.14, # Optional. Alpha value controls the weight between dense and sparse vector search results.
            },
            "ranking": { # Config for ranking and reranking. # Optional. Config for ranking and reranking.
              "rank_service": { # Config for Rank Service. # Optional. Config for Rank Service.
                "model_name": "A String", # Optional. The model name of the rank service.
              },
            },
            "top_k": 42, # Optional. The number of contexts to retrieve.
          },
          "similarity_top_k": 42, # Optional. Number of top k results to return from the selected corpora.
          "vector_distance_threshold": 3.14, # Optional. Only return results with vector distance smaller than the threshold.
        },
        "retrievalTypes": [ # 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.
                "mimeType": "A String", # The mime type of the audio.
                "sampleRate": 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.
                "mimeType": "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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                    ],
                  },
                  "searchType": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "serverName": "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.
                "callId": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result content.
                  "isError": 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "isError": 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                      ],
                      "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result content.
                  "isError": 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.
                      "searchSuggestions": "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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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.
                  "serverName": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result content.
                  "isError": 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.
                "mimeType": "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.
    "cachedTokensByModality": [ # 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.
      },
    ],
    "groundingToolCount": [ # 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.
      },
    ],
    "inputTokensByModality": [ # 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.
      },
    ],
    "outputTokensByModality": [ # 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.
      },
    ],
    "toolUseTokensByModality": [ # 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.
      },
    ],
    "totalCachedTokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
    "totalInputTokens": 42, # Number of tokens in the prompt (context).
    "totalOutputTokens": 42, # Total number of tokens across all the generated responses.
    "totalThoughtTokens": 42, # Number of tokens of thoughts for thinking models.
    "totalTokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
    "totalToolUseTokens": 42, # Number of tokens present in tool-use prompt(s).
  },
}
close()
Close httplib2 connections.
getPoll(name, includeInput=None, lastEventId=None, stream=None, x__xgafv=None)
Fully typed proto, unary version of GetInteraction that returns Interaction proto.

Args:
  name: string, Required. The name of the interaction to retrieve. Format: interactions/{interaction} (required)
  includeInput: boolean, Optional. If true, includes the input in the response.
  lastEventId: string, Optional. If set, resumes the interaction stream from the chunk after the event marked by the event id. Can only be used if `stream` is true.
  stream: boolean, Optional. If true, streams the interaction events as Server-Sent Events.
  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.
    "code_mender_config": { # Configuration for the CodeMender agent.
      "find_request": { # Request parameters specific to FIND sessions, used for discovering vulnerabilities in a codebase. # Parameters for finding vulnerabilities.
        "description": "A String", # Additional context or custom instructions provided by the user to guide the vulnerability analysis.
        "finding_id": "A String", # The identifier of a specific finding to verify. This is primarily used in VERIFY mode to focus the agent's execution-based validation on a single vulnerability.
        "source_files": [ # A list of source files to provide as context for the scan.
          { # Content of a single file in the codebase.
            "content": "A String", # The UTF-8 encoded text content of the file.
            "path": "A String", # The relative path of the file from the project root.
          },
        ],
      },
      "fix_request": { # Request parameters specific to FIX sessions, used for generating and validating security patches. # Parameters for fixing vulnerabilities.
        "description": "A String", # Additional context or custom instructions provided by the user to guide the patch generation process.
        "finding_id": "A String", # The identifier of the specific security finding to be remediated. This ID maps to a previously discovered vulnerability.
        "source_files": [ # A list of source files providing context for the remediation. These files are typically the ones containing the identified vulnerability.
          { # Content of a single file in the codebase.
            "content": "A String", # The UTF-8 encoded text content of the file.
            "path": "A String", # The relative path of the file from the project root.
          },
        ],
      },
      "model": "A String", # The name of the model to use for the CodeMender agent. One CodeMender session will only use one model.
      "session_config": { # The configuration of CodeMender sessions. # Optional session-specific configurations to override default agent behavior.
        "max_rounds": 42, # The maximum number of interaction rounds the agent is allowed to perform before reaching a timeout.
        "pipeline_mode": "A String", # The pipeline mode of a CodeMender session. It can only be used for a find session.
        "topology": "A String", # The cognitive architecture or "thinking" topology used by the agent (e.g. "default", "deep").
      },
      "session_id": "A String", # Parameter for grouping multiple interactions that belong to the same CodeMender session.
    },
    "deepResearchConfig": { # Configuration for the Deep Research agent.
      "collaborativePlanning": 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.
      "enableBigqueryTool": True or False, # Enables bigquery tool for the Deep Research agent.
      "thinkingSummaries": "A String", # Whether to include thought summaries in the response.
      "visualization": "A String", # Whether to include visualizations in the response.
    },
    "dynamicConfig": { # 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: GenaiVertexV1beta1Value
                ],
              },
              "nullValue": "A String", # Represents a null value.
              "numberValue": 3.14, # Represents a double value.
              "stringValue": "A String", # Represents a string value.
              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
      "mimeType": "A String", # The mime type of the audio.
      "sampleRate": 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.
      "mimeType": "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.
      "mimeType": "A String", # The mime type of the image.
      "resolution": "A String", # The resolution of the media.
      "uri": "A String", # The URI of the image.
    },
    "text": { # A text content block.
      "annotations": [ # Citation information for model-generated content.
        { # Citation information for model-generated content.
          "endIndex": 42, # End of the attributed segment, exclusive.
          "fileCitation": { # A file citation annotation. # A file citation annotation.
            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                { # Represents a single field in a struct.
                  "name": "A String",
                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                    "boolValue": True or False, # Represents a boolean value.
                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                      "values": [ # Repeated field of dynamically typed values.
                        # Object with schema name: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
            "documentUri": "A String", # The URI of the file.
            "fileName": "A String", # The name of the file.
            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
            "pageNumber": 42, # Page number of the cited document, if applicable.
            "source": "A String", # Source attributed for a portion of the text.
          },
          "placeCitation": { # A place citation annotation. # A place citation annotation.
            "name": "A String", # Title of the place.
            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                "reviewId": "A String", # The ID of the review snippet.
                "title": "A String", # Title of the review.
                "url": "A String", # A link that corresponds to the user review on Google Maps.
              },
            ],
            "url": "A String", # URI reference of the place.
          },
          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
          "urlCitation": { # A URL citation annotation. # 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.
            "mimeType": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "endIndex": 42, # End of the attributed segment, exclusive.
                "fileCitation": { # A file citation annotation. # A file citation annotation.
                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "documentUri": "A String", # The URI of the file.
                  "fileName": "A String", # The name of the file.
                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                  "pageNumber": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "placeCitation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
          ],
        },
        "searchType": "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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
              },
            },
          ],
        },
        "name": "A String", # Required. The name of the tool which was called.
        "serverName": "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.
      "callId": "A String", # Required. ID to match the ID from the function call block.
      "codeExecutionResult": { # Code execution result content.
        "isError": 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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                      "title": "A String", # The title of the URL.
                      "url": "A String", # The URL.
                    },
                  },
                ],
                "text": "A String", # Required. The text content.
              },
            },
          ],
        },
        "isError": 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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                    "reviewId": "A String", # The ID of the review snippet.
                    "title": "A String", # Title of the review.
                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                  },
                ],
                "url": "A String", # URI reference of the place.
              },
            ],
            "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
          },
        ],
      },
      "googleSearchResult": { # Google Search result content.
        "isError": 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.
            "searchSuggestions": "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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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.
        "serverName": "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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
              },
            },
          ],
        },
      },
      "signature": "A String", # A signature hash for backend validation.
      "urlContextResult": { # URL context result content.
        "isError": 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.
      "mimeType": "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.
          "mimeType": "A String", # The mime type of the audio.
          "sampleRate": 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.
          "mimeType": "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.
          "mimeType": "A String", # The mime type of the image.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the image.
        },
        "text": { # A text content block.
          "annotations": [ # Citation information for model-generated content.
            { # Citation information for model-generated content.
              "endIndex": 42, # End of the attributed segment, exclusive.
              "fileCitation": { # A file citation annotation. # A file citation annotation.
                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "documentUri": "A String", # The URI of the file.
                "fileName": "A String", # The name of the file.
                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                "pageNumber": 42, # Page number of the cited document, if applicable.
                "source": "A String", # Source attributed for a portion of the text.
              },
              "placeCitation": { # A place citation annotation. # A place citation annotation.
                "name": "A String", # Title of the place.
                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                    "reviewId": "A String", # The ID of the review snippet.
                    "title": "A String", # Title of the review.
                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                  },
                ],
                "url": "A String", # URI reference of the place.
              },
              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
              "urlCitation": { # A URL citation annotation. # 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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
              ],
            },
            "searchType": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool which was called.
            "serverName": "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.
          "callId": "A String", # Required. ID to match the ID from the function call block.
          "codeExecutionResult": { # Code execution result content.
            "isError": 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "isError": 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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                ],
                "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
              },
            ],
          },
          "googleSearchResult": { # Google Search result content.
            "isError": 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.
                "searchSuggestions": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
            "serverName": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextResult": { # URL context result content.
            "isError": 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.
          "mimeType": "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).
  "envId": "A String", # The environment ID for the interaction. Can be 'remote' for default environment.
  "environmentId": "A String", # Output only. The environment ID for the interaction. Only populated if environment config is set in the request.
  "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.
    "cached_content": "A String", # The name of the cached content used as context to serve the prediction. Note: only used in explicit caching, where users can have control over caching (e.g. what content to cache) and enjoy guaranteed cost savings. Format: `projects/{project}/locations/{location}/cachedContents/{cachedContent}`
    "generationConfig": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
      "frequency_penalty": 3.14, # Penalizes tokens based on their frequency in the generated text. A positive value helps to reduce the repetition of words and phrases. Valid values can range from [-2.0, 2.0].
      "imageConfig": { # The configuration for image interaction. # Configuration for image interaction.
        "aspectRatio": "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.
        "imageSize": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
      },
      "maxOutputTokens": 42, # The maximum number of tokens to include in the response.
      "presence_penalty": 3.14, # Penalizes tokens that have already appeared in the generated text. A positive value encourages the model to generate more diverse and less repetitive text. Valid values can range from [-2.0, 2.0].
      "seed": 42, # Seed used in decoding for reproducibility.
      "speechConfig": [ # 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.
        },
      ],
      "stopSequences": [ # A list of character sequences that will stop output interaction.
        "A String",
      ],
      "temperature": 3.14, # Controls the randomness of the output.
      "thinkingLevel": "A String", # The level of thought tokens that the model should generate.
      "thinkingSummaries": "A String", # Whether to include thought summaries in the response.
      "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
        "allowedTools": { # 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.
      "topP": 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.
        "mimeType": "A String", # The mime type of the audio.
        "sampleRate": 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.
        "mimeType": "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.
        "mimeType": "A String", # The mime type of the image.
        "resolution": "A String", # The resolution of the media.
        "uri": "A String", # The URI of the image.
      },
      "text": { # A text content block.
        "annotations": [ # Citation information for model-generated content.
          { # Citation information for model-generated content.
            "endIndex": 42, # End of the attributed segment, exclusive.
            "fileCitation": { # A file citation annotation. # A file citation annotation.
              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "documentUri": "A String", # The URI of the file.
              "fileName": "A String", # The name of the file.
              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
              "pageNumber": 42, # Page number of the cited document, if applicable.
              "source": "A String", # Source attributed for a portion of the text.
            },
            "placeCitation": { # A place citation annotation. # A place citation annotation.
              "name": "A String", # Title of the place.
              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                  "reviewId": "A String", # The ID of the review snippet.
                  "title": "A String", # Title of the review.
                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                },
              ],
              "url": "A String", # URI reference of the place.
            },
            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
            "urlCitation": { # A URL citation annotation. # 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.
              "mimeType": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "endIndex": 42, # End of the attributed segment, exclusive.
                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "documentUri": "A String", # The URI of the file.
                    "fileName": "A String", # The name of the file.
                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                    "pageNumber": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
            ],
          },
          "searchType": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
          "name": "A String", # Required. The name of the tool which was called.
          "serverName": "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.
        "callId": "A String", # Required. ID to match the ID from the function call block.
        "codeExecutionResult": { # Code execution result content.
          "isError": 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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "isError": 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
              ],
              "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
            },
          ],
        },
        "googleSearchResult": { # Google Search result content.
          "isError": 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.
              "searchSuggestions": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
          "serverName": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
        "signature": "A String", # A signature hash for backend validation.
        "urlContextResult": { # URL context result content.
          "isError": 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.
        "mimeType": "A String", # The mime type of the video.
        "resolution": "A String", # The resolution of the media.
        "uri": "A String", # The URI of the video.
      },
    },
  ],
  "previousInteractionId": "A String", # The ID of the previous interaction, if any.
  "remoteEnvironment": { # Configuration for a custom environment.
    "networkAllowlist": { # Network egress configuration for the environment. # Allow only specific domains.
      "allowlist": [ # List of allowed domains and their configurations.
        { # A network egress rule that controls which external domains the environment is allowed to reach. Each rule identifies a target domain and, optionally, a set of HTTP headers to inject into every matching outbound request.
          "domain": "A String", # The domain pattern to match for this rule. Use an exact hostname (e.g., `github.com`), a wildcard prefix (e.g., `*.googleapis.com`), or `*` to match all domains.
          "transform": { # Headers to inject into requests matching this rule. Key: header name (e.g., "Authorization"). Value: header value (e.g., "Bearer your-token").
            "a_key": "A String",
          },
        },
      ],
    },
    "networkMode": "A String", # Network egress mode.
    "sources": [
      { # A source to be mounted into the environment.
        "content": "A String", # The inline content if `type` is `INLINE`.
        "encoding": "A String", # Optional encoding for inline content (e.g. `base64`).
        "source": "A String", # The source of the environment. For GCS, this is the GCS path. For GitHub, this is the GitHub path.
        "target": "A String", # Where the source should appear in the environment.
        "type": "A String",
      },
    ],
  },
  "responseFormat": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, 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: GenaiVertexV1beta1Value
      ],
    },
    "nullValue": "A String", # Represents a null value.
    "numberValue": 3.14, # Represents a double value.
    "stringValue": "A String", # Represents a string value.
    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
  },
  "responseFormatList": {
    "responseFormats": [
      {
        "audio": { # Configuration for audio output format.
          "bitRate": 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.
          "mimeType": "A String", # The MIME type of the audio output.
          "sampleRate": 42, # Sample rate in Hz.
        },
        "image": { # Configuration for image output format.
          "aspectRatio": "A String", # The aspect ratio for the image output.
          "delivery": "A String", # The delivery mode for the image output.
          "imageSize": "A String", # The size of the image output.
          "mimeType": "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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
              },
            },
          ],
        },
        "text": { # Configuration for text output format.
          "mimeType": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
      },
    ],
  },
  "responseFormatSingleton": {
    "audio": { # Configuration for audio output format.
      "bitRate": 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.
      "mimeType": "A String", # The MIME type of the audio output.
      "sampleRate": 42, # Sample rate in Hz.
    },
    "image": { # Configuration for image output format.
      "aspectRatio": "A String", # The aspect ratio for the image output.
      "delivery": "A String", # The delivery mode for the image output.
      "imageSize": "A String", # The size of the image output.
      "mimeType": "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: GenaiVertexV1beta1Value
              ],
            },
            "nullValue": "A String", # Represents a null value.
            "numberValue": 3.14, # Represents a double value.
            "stringValue": "A String", # Represents a string value.
            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
          },
        },
      ],
    },
    "text": { # Configuration for text output format.
      "mimeType": "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: GenaiVertexV1beta1Value
                ],
              },
              "nullValue": "A String", # Represents a null value.
              "numberValue": 3.14, # Represents a double value.
              "stringValue": "A String", # Represents a string value.
              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
            },
          },
        ],
      },
    },
  },
  "responseMimeType": "A String", # The mime type of the response. This is required if response_format is set.
  "responseModalities": [ # 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.
                "mimeType": "A String", # The mime type of the audio.
                "sampleRate": 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.
                "mimeType": "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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                    ],
                  },
                  "searchType": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "serverName": "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.
                "callId": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result content.
                  "isError": 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "isError": 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                      ],
                      "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result content.
                  "isError": 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.
                      "searchSuggestions": "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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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.
                  "serverName": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result content.
                  "isError": 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.
                "mimeType": "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.
            { # The content of the response.
              "audio": { # An audio content block.
                "channels": 42, # The number of audio channels.
                "data": "A String", # The audio content.
                "mimeType": "A String", # The mime type of the audio.
                "sampleRate": 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.
                "mimeType": "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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                    ],
                  },
                  "searchType": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "serverName": "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.
                "callId": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result content.
                  "isError": 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "isError": 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                      ],
                      "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result content.
                  "isError": 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.
                      "searchSuggestions": "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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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.
                  "serverName": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result content.
                  "isError": 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.
                "mimeType": "A String", # The mime type of the video.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the video.
              },
            },
          ],
        },
        "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
              ],
            },
            "searchType": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool which was called.
            "serverName": "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.
          "callId": "A String", # Required. ID to match the ID from the function call block.
          "codeExecutionResult": { # Code execution result step.
            "isError": 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": { # A list of Content.
              "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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "isError": 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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "googleMapsResult": { # Google Maps result step.
            "result": [
              { # The result of the Google Maps.
                "places": [
                  {
                    "name": "A String",
                    "placeId": "A String",
                    "reviewSnippets": [
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String",
                  },
                ],
                "widgetContextToken": "A String",
              },
            ],
          },
          "googleSearchResult": { # Google Search result step.
            "isError": 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.
                "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
              },
            ],
          },
          "mcpServerToolResult": { # MCPServer tool result step.
            "contentList": { # A list of Content.
              "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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "name": "A String", # Name of the tool which is called for this specific tool call.
            "serverName": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextResult": { # URL context result step.
            "isError": 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. # DO NOT USE -- These are for 3P JSON only
          "contentList": { # A list of Content. # The content of the step. 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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "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 step. A single string.
        },
      },
    ],
  },
  "steps": [ # Required. 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.
              "mimeType": "A String", # The mime type of the audio.
              "sampleRate": 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.
              "mimeType": "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.
              "mimeType": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "endIndex": 42, # End of the attributed segment, exclusive.
                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "documentUri": "A String", # The URI of the file.
                    "fileName": "A String", # The name of the file.
                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                    "pageNumber": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "urlCitation": { # A URL citation annotation. # 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                  ],
                },
                "searchType": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "serverName": "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.
              "callId": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "isError": 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "isError": 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "isError": 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.
                    "searchSuggestions": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                "serverName": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "isError": 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.
              "mimeType": "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.
          { # The content of the response.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mimeType": "A String", # The mime type of the audio.
              "sampleRate": 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.
              "mimeType": "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.
              "mimeType": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "endIndex": 42, # End of the attributed segment, exclusive.
                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "documentUri": "A String", # The URI of the file.
                    "fileName": "A String", # The name of the file.
                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                    "pageNumber": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "urlCitation": { # A URL citation annotation. # 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                  ],
                },
                "searchType": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "serverName": "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.
              "callId": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "isError": 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "isError": 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "isError": 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.
                    "searchSuggestions": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                "serverName": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "isError": 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.
              "mimeType": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
        ],
      },
      "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
            ],
          },
          "searchType": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
          "name": "A String", # Required. The name of the tool which was called.
          "serverName": "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.
        "callId": "A String", # Required. ID to match the ID from the function call block.
        "codeExecutionResult": { # Code execution result step.
          "isError": 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": { # A list of Content.
            "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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "isError": 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
        "googleMapsResult": { # Google Maps result step.
          "result": [
            { # The result of the Google Maps.
              "places": [
                {
                  "name": "A String",
                  "placeId": "A String",
                  "reviewSnippets": [
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String",
                },
              ],
              "widgetContextToken": "A String",
            },
          ],
        },
        "googleSearchResult": { # Google Search result step.
          "isError": 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.
              "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
            },
          ],
        },
        "mcpServerToolResult": { # MCPServer tool result step.
          "contentList": { # A list of Content.
            "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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "name": "A String", # Name of the tool which is called for this specific tool call.
          "serverName": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
        "signature": "A String", # A signature hash for backend validation.
        "urlContextResult": { # URL context result step.
          "isError": 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. # DO NOT USE -- These are for 3P JSON only
        "contentList": { # A list of Content. # The content of the step. 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.
                "mimeType": "A String", # The mime type of the audio.
                "sampleRate": 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.
                "mimeType": "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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                    ],
                  },
                  "searchType": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "serverName": "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.
                "callId": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result content.
                  "isError": 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "isError": 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                      ],
                      "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result content.
                  "isError": 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.
                      "searchSuggestions": "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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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.
                  "serverName": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result content.
                  "isError": 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.
                "mimeType": "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 step. A single string.
      },
    },
  ],
  "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
  "systemInstruction": "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.
        "excludedPredefinedFunctions": [ # 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.
        "fileSearchStoreNames": [ # The file search store names to search.
          "A String",
        ],
        "metadataFilter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
        "topK": 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: GenaiVertexV1beta1Value
            ],
          },
          "nullValue": "A String", # Represents a null value.
          "numberValue": 3.14, # Represents a double value.
          "stringValue": "A String", # Represents a string value.
          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
        "enableWidget": 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.
        "searchTypes": [ # 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.
        "allowedTools": [ # 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.
        "exa_ai_search_config": { # Used to specify configuration for ExaAISearch. # Used to specify configuration for ExaAISearch.
          "api_key": "A String", # Required. The API key for ExaAiSearch.
          "custom_config": { # Optional. This field can be used to pass any parameter from the Exa.ai Search API.
            "a_key": "", # Properties of the object.
          },
        },
        "parallel_ai_search_config": { # Used to specify configuration for ParallelAISearch. # Used to specify configuration for ParallelAISearch.
          "api_key": "A String", # Optional. The API key for ParallelAiSearch.
          "custom_config": { # Optional. Custom configs for ParallelAiSearch.
            "a_key": "", # Properties of the object.
          },
        },
        "rag_store_config": { # Use to specify configuration for RAG Store. # Used to specify configuration for RagStore.
          "rag_resources": [ # Optional. The representation of the rag source.
            { # The definition of the Rag resource.
              "rag_corpus": "A String", # Optional. RagCorpora resource name.
              "rag_file_ids": [ # Optional. rag_file_id. The files should be in the same rag_corpus set in rag_corpus field.
                "A String",
              ],
            },
          ],
          "rag_retrieval_config": { # Specifies the context retrieval config. # Optional. The retrieval config for the Rag query.
            "filter": { # Config for filters. # Optional. Config for filters.
              "metadata_filter": "A String", # Optional. String for metadata filtering.
              "vector_distance_threshold": 3.14, # Optional. Only returns contexts with vector distance smaller than the threshold.
              "vector_similarity_threshold": 3.14, # Optional. Only returns contexts with vector similarity larger than the threshold.
            },
            "hybrid_search": { # Config for Hybrid Search. # Optional. Config for Hybrid Search.
              "alpha": 3.14, # Optional. Alpha value controls the weight between dense and sparse vector search results.
            },
            "ranking": { # Config for ranking and reranking. # Optional. Config for ranking and reranking.
              "rank_service": { # Config for Rank Service. # Optional. Config for Rank Service.
                "model_name": "A String", # Optional. The model name of the rank service.
              },
            },
            "top_k": 42, # Optional. The number of contexts to retrieve.
          },
          "similarity_top_k": 42, # Optional. Number of top k results to return from the selected corpora.
          "vector_distance_threshold": 3.14, # Optional. Only return results with vector distance smaller than the threshold.
        },
        "retrievalTypes": [ # 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.
                "mimeType": "A String", # The mime type of the audio.
                "sampleRate": 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.
                "mimeType": "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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                    ],
                  },
                  "searchType": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "serverName": "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.
                "callId": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result content.
                  "isError": 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "isError": 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                      ],
                      "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result content.
                  "isError": 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.
                      "searchSuggestions": "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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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.
                  "serverName": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result content.
                  "isError": 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.
                "mimeType": "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.
    "cachedTokensByModality": [ # 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.
      },
    ],
    "groundingToolCount": [ # 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.
      },
    ],
    "inputTokensByModality": [ # 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.
      },
    ],
    "outputTokensByModality": [ # 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.
      },
    ],
    "toolUseTokensByModality": [ # 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.
      },
    ],
    "totalCachedTokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
    "totalInputTokens": 42, # Number of tokens in the prompt (context).
    "totalOutputTokens": 42, # Total number of tokens across all the generated responses.
    "totalThoughtTokens": 42, # Number of tokens of thoughts for thinking models.
    "totalTokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
    "totalToolUseTokens": 42, # Number of tokens present in tool-use prompt(s).
  },
}
getStream(name, includeInput=None, lastEventId=None, stream=None, x__xgafv=None)
Fully typed proto, streaming version of GetInteraction that returns Interaction proto.

Args:
  name: string, Required. The name of the interaction to retrieve. Format: interactions/{interaction} (required)
  includeInput: boolean, Optional. If true, includes the input in the response.
  lastEventId: string, Optional. If set, resumes the interaction stream from the chunk after the event marked by the event id. Can only be used if `stream` is true.
  stream: boolean, Optional. If true, streams the interaction events as Server-Sent Events.
  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",
        "mimeType": "A String",
        "rate": 42, # Deprecated. Use sample_rate instead. The value is ignored.
        "sampleRate": 42, # The sample rate of the audio.
        "uri": "A String",
      },
      "document": {
        "data": "A String",
        "mimeType": "A String",
        "uri": "A String",
      },
      "image": {
        "data": "A String",
        "mimeType": "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.
            "endIndex": 42, # End of the attributed segment, exclusive.
            "fileCitation": { # A file citation annotation. # A file citation annotation.
              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "documentUri": "A String", # The URI of the file.
              "fileName": "A String", # The name of the file.
              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
              "pageNumber": 42, # Page number of the cited document, if applicable.
              "source": "A String", # Source attributed for a portion of the text.
            },
            "placeCitation": { # A place citation annotation. # A place citation annotation.
              "name": "A String", # Title of the place.
              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                  "reviewId": "A String", # The ID of the review snippet.
                  "title": "A String", # Title of the review.
                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                },
              ],
              "url": "A String", # URI reference of the place.
            },
            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
            "urlCitation": { # 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": { # The content of the response. # A new summary item to be added to the thought.
          "audio": { # An audio content block.
            "channels": 42, # The number of audio channels.
            "data": "A String", # The audio content.
            "mimeType": "A String", # The mime type of the audio.
            "sampleRate": 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.
            "mimeType": "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.
            "mimeType": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "endIndex": 42, # End of the attributed segment, exclusive.
                "fileCitation": { # A file citation annotation. # A file citation annotation.
                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "documentUri": "A String", # The URI of the file.
                  "fileName": "A String", # The name of the file.
                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                  "pageNumber": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "placeCitation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "urlCitation": { # A URL citation annotation. # 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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                ],
              },
              "searchType": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "serverName": "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.
            "callId": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result content.
              "isError": 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "isError": 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                  ],
                  "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                },
              ],
            },
            "googleSearchResult": { # Google Search result content.
              "isError": 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.
                  "searchSuggestions": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
              "serverName": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result content.
              "isError": 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.
            "mimeType": "A String", # The mime type of the video.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the video.
          },
        },
      },
      "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
          "name": "A String",
          "serverName": "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": {
        "callId": "A String", # Required. ID to match the ID from the function call block.
        "codeExecutionResult": {
          "isError": True or False,
          "result": "A String",
        },
        "fileSearchResult": {
          "result": [
            { # The result of the File Search.
            },
          ],
        },
        "functionResult": {
          "contentList": { # A list of Content.
            "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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "isError": 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
              ],
              "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
            },
          ],
        },
        "googleSearchResult": {
          "isError": True or False,
          "result": [
            { # The result of the Google Search.
              "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
            },
          ],
        },
        "mcpServerToolResult": {
          "contentList": { # A list of Content.
            "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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "name": "A String",
          "serverName": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
        "signature": "A String", # A signature hash for backend validation.
        "urlContextResult": {
          "isError": 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",
        "mimeType": "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.
        "mimeType": "A String", # The mime type of the audio.
        "sampleRate": 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.
        "mimeType": "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.
        "mimeType": "A String", # The mime type of the image.
        "resolution": "A String", # The resolution of the media.
        "uri": "A String", # The URI of the image.
      },
      "text": { # A text content block.
        "annotations": [ # Citation information for model-generated content.
          { # Citation information for model-generated content.
            "endIndex": 42, # End of the attributed segment, exclusive.
            "fileCitation": { # A file citation annotation. # A file citation annotation.
              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "documentUri": "A String", # The URI of the file.
              "fileName": "A String", # The name of the file.
              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
              "pageNumber": 42, # Page number of the cited document, if applicable.
              "source": "A String", # Source attributed for a portion of the text.
            },
            "placeCitation": { # A place citation annotation. # A place citation annotation.
              "name": "A String", # Title of the place.
              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                  "reviewId": "A String", # The ID of the review snippet.
                  "title": "A String", # Title of the review.
                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                },
              ],
              "url": "A String", # URI reference of the place.
            },
            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
            "urlCitation": { # A URL citation annotation. # 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.
              "mimeType": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "endIndex": 42, # End of the attributed segment, exclusive.
                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "documentUri": "A String", # The URI of the file.
                    "fileName": "A String", # The name of the file.
                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                    "pageNumber": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
            ],
          },
          "searchType": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
          "name": "A String", # Required. The name of the tool which was called.
          "serverName": "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.
        "callId": "A String", # Required. ID to match the ID from the function call block.
        "codeExecutionResult": { # Code execution result content.
          "isError": 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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                        "title": "A String", # The title of the URL.
                        "url": "A String", # The URL.
                      },
                    },
                  ],
                  "text": "A String", # Required. The text content.
                },
              },
            ],
          },
          "isError": 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
              ],
              "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
            },
          ],
        },
        "googleSearchResult": { # Google Search result content.
          "isError": 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.
              "searchSuggestions": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
          "serverName": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
        "signature": "A String", # A signature hash for backend validation.
        "urlContextResult": { # URL context result content.
          "isError": 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.
        "mimeType": "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.
    },
  },
  "eventId": "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.
        "code_mender_config": { # Configuration for the CodeMender agent.
          "find_request": { # Request parameters specific to FIND sessions, used for discovering vulnerabilities in a codebase. # Parameters for finding vulnerabilities.
            "description": "A String", # Additional context or custom instructions provided by the user to guide the vulnerability analysis.
            "finding_id": "A String", # The identifier of a specific finding to verify. This is primarily used in VERIFY mode to focus the agent's execution-based validation on a single vulnerability.
            "source_files": [ # A list of source files to provide as context for the scan.
              { # Content of a single file in the codebase.
                "content": "A String", # The UTF-8 encoded text content of the file.
                "path": "A String", # The relative path of the file from the project root.
              },
            ],
          },
          "fix_request": { # Request parameters specific to FIX sessions, used for generating and validating security patches. # Parameters for fixing vulnerabilities.
            "description": "A String", # Additional context or custom instructions provided by the user to guide the patch generation process.
            "finding_id": "A String", # The identifier of the specific security finding to be remediated. This ID maps to a previously discovered vulnerability.
            "source_files": [ # A list of source files providing context for the remediation. These files are typically the ones containing the identified vulnerability.
              { # Content of a single file in the codebase.
                "content": "A String", # The UTF-8 encoded text content of the file.
                "path": "A String", # The relative path of the file from the project root.
              },
            ],
          },
          "model": "A String", # The name of the model to use for the CodeMender agent. One CodeMender session will only use one model.
          "session_config": { # The configuration of CodeMender sessions. # Optional session-specific configurations to override default agent behavior.
            "max_rounds": 42, # The maximum number of interaction rounds the agent is allowed to perform before reaching a timeout.
            "pipeline_mode": "A String", # The pipeline mode of a CodeMender session. It can only be used for a find session.
            "topology": "A String", # The cognitive architecture or "thinking" topology used by the agent (e.g. "default", "deep").
          },
          "session_id": "A String", # Parameter for grouping multiple interactions that belong to the same CodeMender session.
        },
        "deepResearchConfig": { # Configuration for the Deep Research agent.
          "collaborativePlanning": 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.
          "enableBigqueryTool": True or False, # Enables bigquery tool for the Deep Research agent.
          "thinkingSummaries": "A String", # Whether to include thought summaries in the response.
          "visualization": "A String", # Whether to include visualizations in the response.
        },
        "dynamicConfig": { # 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
          "mimeType": "A String", # The mime type of the audio.
          "sampleRate": 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.
          "mimeType": "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.
          "mimeType": "A String", # The mime type of the image.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the image.
        },
        "text": { # A text content block.
          "annotations": [ # Citation information for model-generated content.
            { # Citation information for model-generated content.
              "endIndex": 42, # End of the attributed segment, exclusive.
              "fileCitation": { # A file citation annotation. # A file citation annotation.
                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "documentUri": "A String", # The URI of the file.
                "fileName": "A String", # The name of the file.
                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                "pageNumber": 42, # Page number of the cited document, if applicable.
                "source": "A String", # Source attributed for a portion of the text.
              },
              "placeCitation": { # A place citation annotation. # A place citation annotation.
                "name": "A String", # Title of the place.
                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                    "reviewId": "A String", # The ID of the review snippet.
                    "title": "A String", # Title of the review.
                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                  },
                ],
                "url": "A String", # URI reference of the place.
              },
              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
              "urlCitation": { # A URL citation annotation. # 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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
              ],
            },
            "searchType": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool which was called.
            "serverName": "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.
          "callId": "A String", # Required. ID to match the ID from the function call block.
          "codeExecutionResult": { # Code execution result content.
            "isError": 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "isError": 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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                ],
                "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
              },
            ],
          },
          "googleSearchResult": { # Google Search result content.
            "isError": 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.
                "searchSuggestions": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
            "serverName": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextResult": { # URL context result content.
            "isError": 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.
          "mimeType": "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.
              "mimeType": "A String", # The mime type of the audio.
              "sampleRate": 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.
              "mimeType": "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.
              "mimeType": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "endIndex": 42, # End of the attributed segment, exclusive.
                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "documentUri": "A String", # The URI of the file.
                    "fileName": "A String", # The name of the file.
                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                    "pageNumber": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "urlCitation": { # A URL citation annotation. # 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                  ],
                },
                "searchType": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "serverName": "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.
              "callId": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "isError": 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "isError": 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "isError": 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.
                    "searchSuggestions": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                "serverName": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "isError": 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.
              "mimeType": "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).
      "envId": "A String", # The environment ID for the interaction. Can be 'remote' for default environment.
      "environmentId": "A String", # Output only. The environment ID for the interaction. Only populated if environment config is set in the request.
      "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.
        "cached_content": "A String", # The name of the cached content used as context to serve the prediction. Note: only used in explicit caching, where users can have control over caching (e.g. what content to cache) and enjoy guaranteed cost savings. Format: `projects/{project}/locations/{location}/cachedContents/{cachedContent}`
        "generationConfig": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
          "frequency_penalty": 3.14, # Penalizes tokens based on their frequency in the generated text. A positive value helps to reduce the repetition of words and phrases. Valid values can range from [-2.0, 2.0].
          "imageConfig": { # The configuration for image interaction. # Configuration for image interaction.
            "aspectRatio": "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.
            "imageSize": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
          },
          "maxOutputTokens": 42, # The maximum number of tokens to include in the response.
          "presence_penalty": 3.14, # Penalizes tokens that have already appeared in the generated text. A positive value encourages the model to generate more diverse and less repetitive text. Valid values can range from [-2.0, 2.0].
          "seed": 42, # Seed used in decoding for reproducibility.
          "speechConfig": [ # 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.
            },
          ],
          "stopSequences": [ # A list of character sequences that will stop output interaction.
            "A String",
          ],
          "temperature": 3.14, # Controls the randomness of the output.
          "thinkingLevel": "A String", # The level of thought tokens that the model should generate.
          "thinkingSummaries": "A String", # Whether to include thought summaries in the response.
          "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
            "allowedTools": { # 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.
          "topP": 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.
            "mimeType": "A String", # The mime type of the audio.
            "sampleRate": 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.
            "mimeType": "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.
            "mimeType": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "endIndex": 42, # End of the attributed segment, exclusive.
                "fileCitation": { # A file citation annotation. # A file citation annotation.
                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "documentUri": "A String", # The URI of the file.
                  "fileName": "A String", # The name of the file.
                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                  "pageNumber": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "placeCitation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "urlCitation": { # A URL citation annotation. # 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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                ],
              },
              "searchType": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "serverName": "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.
            "callId": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result content.
              "isError": 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "isError": 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                  ],
                  "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                },
              ],
            },
            "googleSearchResult": { # Google Search result content.
              "isError": 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.
                  "searchSuggestions": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
              "serverName": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result content.
              "isError": 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.
            "mimeType": "A String", # The mime type of the video.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the video.
          },
        },
      ],
      "previousInteractionId": "A String", # The ID of the previous interaction, if any.
      "remoteEnvironment": { # Configuration for a custom environment.
        "networkAllowlist": { # Network egress configuration for the environment. # Allow only specific domains.
          "allowlist": [ # List of allowed domains and their configurations.
            { # A network egress rule that controls which external domains the environment is allowed to reach. Each rule identifies a target domain and, optionally, a set of HTTP headers to inject into every matching outbound request.
              "domain": "A String", # The domain pattern to match for this rule. Use an exact hostname (e.g., `github.com`), a wildcard prefix (e.g., `*.googleapis.com`), or `*` to match all domains.
              "transform": { # Headers to inject into requests matching this rule. Key: header name (e.g., "Authorization"). Value: header value (e.g., "Bearer your-token").
                "a_key": "A String",
              },
            },
          ],
        },
        "networkMode": "A String", # Network egress mode.
        "sources": [
          { # A source to be mounted into the environment.
            "content": "A String", # The inline content if `type` is `INLINE`.
            "encoding": "A String", # Optional encoding for inline content (e.g. `base64`).
            "source": "A String", # The source of the environment. For GCS, this is the GCS path. For GitHub, this is the GitHub path.
            "target": "A String", # Where the source should appear in the environment.
            "type": "A String",
          },
        ],
      },
      "responseFormat": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, 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: GenaiVertexV1beta1Value
          ],
        },
        "nullValue": "A String", # Represents a null value.
        "numberValue": 3.14, # Represents a double value.
        "stringValue": "A String", # Represents a string value.
        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
      },
      "responseFormatList": {
        "responseFormats": [
          {
            "audio": { # Configuration for audio output format.
              "bitRate": 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.
              "mimeType": "A String", # The MIME type of the audio output.
              "sampleRate": 42, # Sample rate in Hz.
            },
            "image": { # Configuration for image output format.
              "aspectRatio": "A String", # The aspect ratio for the image output.
              "delivery": "A String", # The delivery mode for the image output.
              "imageSize": "A String", # The size of the image output.
              "mimeType": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
            "text": { # Configuration for text output format.
              "mimeType": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
          },
        ],
      },
      "responseFormatSingleton": {
        "audio": { # Configuration for audio output format.
          "bitRate": 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.
          "mimeType": "A String", # The MIME type of the audio output.
          "sampleRate": 42, # Sample rate in Hz.
        },
        "image": { # Configuration for image output format.
          "aspectRatio": "A String", # The aspect ratio for the image output.
          "delivery": "A String", # The delivery mode for the image output.
          "imageSize": "A String", # The size of the image output.
          "mimeType": "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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
              },
            },
          ],
        },
        "text": { # Configuration for text output format.
          "mimeType": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
      },
      "responseMimeType": "A String", # The mime type of the response. This is required if response_format is set.
      "responseModalities": [ # 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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "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.
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                  ],
                },
                "searchType": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "serverName": "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.
              "callId": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result step.
                "isError": 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": { # A list of Content.
                  "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.
                        "mimeType": "A String", # The mime type of the audio.
                        "sampleRate": 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.
                        "mimeType": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                            ],
                          },
                          "searchType": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "serverName": "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.
                        "callId": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "isError": 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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "isError": 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "isError": 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.
                              "searchSuggestions": "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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # 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.
                          "serverName": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "isError": 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.
                        "mimeType": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "isError": 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result step.
                "result": [
                  { # The result of the Google Maps.
                    "places": [
                      {
                        "name": "A String",
                        "placeId": "A String",
                        "reviewSnippets": [
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String",
                      },
                    ],
                    "widgetContextToken": "A String",
                  },
                ],
              },
              "googleSearchResult": { # Google Search result step.
                "isError": 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.
                    "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result step.
                "contentList": { # A list of Content.
                  "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.
                        "mimeType": "A String", # The mime type of the audio.
                        "sampleRate": 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.
                        "mimeType": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                            ],
                          },
                          "searchType": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "serverName": "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.
                        "callId": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "isError": 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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "isError": 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "isError": 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.
                              "searchSuggestions": "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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # 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.
                          "serverName": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "isError": 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.
                        "mimeType": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "serverName": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result step.
                "isError": 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. # DO NOT USE -- These are for 3P JSON only
              "contentList": { # A list of Content. # The content of the step. 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.
                      "mimeType": "A String", # The mime type of the audio.
                      "sampleRate": 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.
                      "mimeType": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                          ],
                        },
                        "searchType": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "serverName": "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.
                      "callId": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "isError": 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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "isError": 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "isError": 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.
                            "searchSuggestions": "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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # 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.
                        "serverName": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "isError": 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.
                      "mimeType": "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 step. A single string.
            },
          },
        ],
      },
      "steps": [ # Required. 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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "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.
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                ],
              },
              "searchType": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "serverName": "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.
            "callId": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result step.
              "isError": 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": { # A list of Content.
                "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.
                      "mimeType": "A String", # The mime type of the audio.
                      "sampleRate": 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.
                      "mimeType": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                          ],
                        },
                        "searchType": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "serverName": "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.
                      "callId": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "isError": 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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "isError": 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "isError": 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.
                            "searchSuggestions": "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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # 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.
                        "serverName": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "isError": 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.
                      "mimeType": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
              "isError": 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result step.
              "result": [
                { # The result of the Google Maps.
                  "places": [
                    {
                      "name": "A String",
                      "placeId": "A String",
                      "reviewSnippets": [
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String",
                    },
                  ],
                  "widgetContextToken": "A String",
                },
              ],
            },
            "googleSearchResult": { # Google Search result step.
              "isError": 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.
                  "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result step.
              "contentList": { # A list of Content.
                "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.
                      "mimeType": "A String", # The mime type of the audio.
                      "sampleRate": 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.
                      "mimeType": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                          ],
                        },
                        "searchType": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "serverName": "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.
                      "callId": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "isError": 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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "isError": 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "isError": 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.
                            "searchSuggestions": "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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # 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.
                        "serverName": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "isError": 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.
                      "mimeType": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "serverName": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result step.
              "isError": 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. # DO NOT USE -- These are for 3P JSON only
            "contentList": { # A list of Content. # The content of the step. 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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "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 step. A single string.
          },
        },
      ],
      "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
      "systemInstruction": "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.
            "excludedPredefinedFunctions": [ # 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.
            "fileSearchStoreNames": [ # The file search store names to search.
              "A String",
            ],
            "metadataFilter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
            "topK": 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: GenaiVertexV1beta1Value
                ],
              },
              "nullValue": "A String", # Represents a null value.
              "numberValue": 3.14, # Represents a double value.
              "stringValue": "A String", # Represents a string value.
              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
            "enableWidget": 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.
            "searchTypes": [ # 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.
            "allowedTools": [ # 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.
            "exa_ai_search_config": { # Used to specify configuration for ExaAISearch. # Used to specify configuration for ExaAISearch.
              "api_key": "A String", # Required. The API key for ExaAiSearch.
              "custom_config": { # Optional. This field can be used to pass any parameter from the Exa.ai Search API.
                "a_key": "", # Properties of the object.
              },
            },
            "parallel_ai_search_config": { # Used to specify configuration for ParallelAISearch. # Used to specify configuration for ParallelAISearch.
              "api_key": "A String", # Optional. The API key for ParallelAiSearch.
              "custom_config": { # Optional. Custom configs for ParallelAiSearch.
                "a_key": "", # Properties of the object.
              },
            },
            "rag_store_config": { # Use to specify configuration for RAG Store. # Used to specify configuration for RagStore.
              "rag_resources": [ # Optional. The representation of the rag source.
                { # The definition of the Rag resource.
                  "rag_corpus": "A String", # Optional. RagCorpora resource name.
                  "rag_file_ids": [ # Optional. rag_file_id. The files should be in the same rag_corpus set in rag_corpus field.
                    "A String",
                  ],
                },
              ],
              "rag_retrieval_config": { # Specifies the context retrieval config. # Optional. The retrieval config for the Rag query.
                "filter": { # Config for filters. # Optional. Config for filters.
                  "metadata_filter": "A String", # Optional. String for metadata filtering.
                  "vector_distance_threshold": 3.14, # Optional. Only returns contexts with vector distance smaller than the threshold.
                  "vector_similarity_threshold": 3.14, # Optional. Only returns contexts with vector similarity larger than the threshold.
                },
                "hybrid_search": { # Config for Hybrid Search. # Optional. Config for Hybrid Search.
                  "alpha": 3.14, # Optional. Alpha value controls the weight between dense and sparse vector search results.
                },
                "ranking": { # Config for ranking and reranking. # Optional. Config for ranking and reranking.
                  "rank_service": { # Config for Rank Service. # Optional. Config for Rank Service.
                    "model_name": "A String", # Optional. The model name of the rank service.
                  },
                },
                "top_k": 42, # Optional. The number of contexts to retrieve.
              },
              "similarity_top_k": 42, # Optional. Number of top k results to return from the selected corpora.
              "vector_distance_threshold": 3.14, # Optional. Only return results with vector distance smaller than the threshold.
            },
            "retrievalTypes": [ # 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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "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.
        "cachedTokensByModality": [ # 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.
          },
        ],
        "groundingToolCount": [ # 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.
          },
        ],
        "inputTokensByModality": [ # 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.
          },
        ],
        "outputTokensByModality": [ # 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.
          },
        ],
        "toolUseTokensByModality": [ # 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.
          },
        ],
        "totalCachedTokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
        "totalInputTokens": 42, # Number of tokens in the prompt (context).
        "totalOutputTokens": 42, # Total number of tokens across all the generated responses.
        "totalThoughtTokens": 42, # Number of tokens of thoughts for thinking models.
        "totalTokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
        "totalToolUseTokens": 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.
        "code_mender_config": { # Configuration for the CodeMender agent.
          "find_request": { # Request parameters specific to FIND sessions, used for discovering vulnerabilities in a codebase. # Parameters for finding vulnerabilities.
            "description": "A String", # Additional context or custom instructions provided by the user to guide the vulnerability analysis.
            "finding_id": "A String", # The identifier of a specific finding to verify. This is primarily used in VERIFY mode to focus the agent's execution-based validation on a single vulnerability.
            "source_files": [ # A list of source files to provide as context for the scan.
              { # Content of a single file in the codebase.
                "content": "A String", # The UTF-8 encoded text content of the file.
                "path": "A String", # The relative path of the file from the project root.
              },
            ],
          },
          "fix_request": { # Request parameters specific to FIX sessions, used for generating and validating security patches. # Parameters for fixing vulnerabilities.
            "description": "A String", # Additional context or custom instructions provided by the user to guide the patch generation process.
            "finding_id": "A String", # The identifier of the specific security finding to be remediated. This ID maps to a previously discovered vulnerability.
            "source_files": [ # A list of source files providing context for the remediation. These files are typically the ones containing the identified vulnerability.
              { # Content of a single file in the codebase.
                "content": "A String", # The UTF-8 encoded text content of the file.
                "path": "A String", # The relative path of the file from the project root.
              },
            ],
          },
          "model": "A String", # The name of the model to use for the CodeMender agent. One CodeMender session will only use one model.
          "session_config": { # The configuration of CodeMender sessions. # Optional session-specific configurations to override default agent behavior.
            "max_rounds": 42, # The maximum number of interaction rounds the agent is allowed to perform before reaching a timeout.
            "pipeline_mode": "A String", # The pipeline mode of a CodeMender session. It can only be used for a find session.
            "topology": "A String", # The cognitive architecture or "thinking" topology used by the agent (e.g. "default", "deep").
          },
          "session_id": "A String", # Parameter for grouping multiple interactions that belong to the same CodeMender session.
        },
        "deepResearchConfig": { # Configuration for the Deep Research agent.
          "collaborativePlanning": 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.
          "enableBigqueryTool": True or False, # Enables bigquery tool for the Deep Research agent.
          "thinkingSummaries": "A String", # Whether to include thought summaries in the response.
          "visualization": "A String", # Whether to include visualizations in the response.
        },
        "dynamicConfig": { # 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
          "mimeType": "A String", # The mime type of the audio.
          "sampleRate": 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.
          "mimeType": "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.
          "mimeType": "A String", # The mime type of the image.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the image.
        },
        "text": { # A text content block.
          "annotations": [ # Citation information for model-generated content.
            { # Citation information for model-generated content.
              "endIndex": 42, # End of the attributed segment, exclusive.
              "fileCitation": { # A file citation annotation. # A file citation annotation.
                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "documentUri": "A String", # The URI of the file.
                "fileName": "A String", # The name of the file.
                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                "pageNumber": 42, # Page number of the cited document, if applicable.
                "source": "A String", # Source attributed for a portion of the text.
              },
              "placeCitation": { # A place citation annotation. # A place citation annotation.
                "name": "A String", # Title of the place.
                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                    "reviewId": "A String", # The ID of the review snippet.
                    "title": "A String", # Title of the review.
                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                  },
                ],
                "url": "A String", # URI reference of the place.
              },
              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
              "urlCitation": { # A URL citation annotation. # 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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
              ],
            },
            "searchType": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool which was called.
            "serverName": "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.
          "callId": "A String", # Required. ID to match the ID from the function call block.
          "codeExecutionResult": { # Code execution result content.
            "isError": 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "isError": 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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                ],
                "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
              },
            ],
          },
          "googleSearchResult": { # Google Search result content.
            "isError": 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.
                "searchSuggestions": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
            "serverName": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextResult": { # URL context result content.
            "isError": 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.
          "mimeType": "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.
              "mimeType": "A String", # The mime type of the audio.
              "sampleRate": 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.
              "mimeType": "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.
              "mimeType": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "endIndex": 42, # End of the attributed segment, exclusive.
                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "documentUri": "A String", # The URI of the file.
                    "fileName": "A String", # The name of the file.
                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                    "pageNumber": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "urlCitation": { # A URL citation annotation. # 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                  ],
                },
                "searchType": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "serverName": "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.
              "callId": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "isError": 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "isError": 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "isError": 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.
                    "searchSuggestions": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                "serverName": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "isError": 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.
              "mimeType": "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).
      "envId": "A String", # The environment ID for the interaction. Can be 'remote' for default environment.
      "environmentId": "A String", # Output only. The environment ID for the interaction. Only populated if environment config is set in the request.
      "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.
        "cached_content": "A String", # The name of the cached content used as context to serve the prediction. Note: only used in explicit caching, where users can have control over caching (e.g. what content to cache) and enjoy guaranteed cost savings. Format: `projects/{project}/locations/{location}/cachedContents/{cachedContent}`
        "generationConfig": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
          "frequency_penalty": 3.14, # Penalizes tokens based on their frequency in the generated text. A positive value helps to reduce the repetition of words and phrases. Valid values can range from [-2.0, 2.0].
          "imageConfig": { # The configuration for image interaction. # Configuration for image interaction.
            "aspectRatio": "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.
            "imageSize": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
          },
          "maxOutputTokens": 42, # The maximum number of tokens to include in the response.
          "presence_penalty": 3.14, # Penalizes tokens that have already appeared in the generated text. A positive value encourages the model to generate more diverse and less repetitive text. Valid values can range from [-2.0, 2.0].
          "seed": 42, # Seed used in decoding for reproducibility.
          "speechConfig": [ # 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.
            },
          ],
          "stopSequences": [ # A list of character sequences that will stop output interaction.
            "A String",
          ],
          "temperature": 3.14, # Controls the randomness of the output.
          "thinkingLevel": "A String", # The level of thought tokens that the model should generate.
          "thinkingSummaries": "A String", # Whether to include thought summaries in the response.
          "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
            "allowedTools": { # 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.
          "topP": 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.
            "mimeType": "A String", # The mime type of the audio.
            "sampleRate": 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.
            "mimeType": "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.
            "mimeType": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "endIndex": 42, # End of the attributed segment, exclusive.
                "fileCitation": { # A file citation annotation. # A file citation annotation.
                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "documentUri": "A String", # The URI of the file.
                  "fileName": "A String", # The name of the file.
                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                  "pageNumber": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "placeCitation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "urlCitation": { # A URL citation annotation. # 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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                ],
              },
              "searchType": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "serverName": "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.
            "callId": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result content.
              "isError": 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "isError": 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                  ],
                  "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                },
              ],
            },
            "googleSearchResult": { # Google Search result content.
              "isError": 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.
                  "searchSuggestions": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
              "serverName": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result content.
              "isError": 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.
            "mimeType": "A String", # The mime type of the video.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the video.
          },
        },
      ],
      "previousInteractionId": "A String", # The ID of the previous interaction, if any.
      "remoteEnvironment": { # Configuration for a custom environment.
        "networkAllowlist": { # Network egress configuration for the environment. # Allow only specific domains.
          "allowlist": [ # List of allowed domains and their configurations.
            { # A network egress rule that controls which external domains the environment is allowed to reach. Each rule identifies a target domain and, optionally, a set of HTTP headers to inject into every matching outbound request.
              "domain": "A String", # The domain pattern to match for this rule. Use an exact hostname (e.g., `github.com`), a wildcard prefix (e.g., `*.googleapis.com`), or `*` to match all domains.
              "transform": { # Headers to inject into requests matching this rule. Key: header name (e.g., "Authorization"). Value: header value (e.g., "Bearer your-token").
                "a_key": "A String",
              },
            },
          ],
        },
        "networkMode": "A String", # Network egress mode.
        "sources": [
          { # A source to be mounted into the environment.
            "content": "A String", # The inline content if `type` is `INLINE`.
            "encoding": "A String", # Optional encoding for inline content (e.g. `base64`).
            "source": "A String", # The source of the environment. For GCS, this is the GCS path. For GitHub, this is the GitHub path.
            "target": "A String", # Where the source should appear in the environment.
            "type": "A String",
          },
        ],
      },
      "responseFormat": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, 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: GenaiVertexV1beta1Value
          ],
        },
        "nullValue": "A String", # Represents a null value.
        "numberValue": 3.14, # Represents a double value.
        "stringValue": "A String", # Represents a string value.
        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
      },
      "responseFormatList": {
        "responseFormats": [
          {
            "audio": { # Configuration for audio output format.
              "bitRate": 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.
              "mimeType": "A String", # The MIME type of the audio output.
              "sampleRate": 42, # Sample rate in Hz.
            },
            "image": { # Configuration for image output format.
              "aspectRatio": "A String", # The aspect ratio for the image output.
              "delivery": "A String", # The delivery mode for the image output.
              "imageSize": "A String", # The size of the image output.
              "mimeType": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
            "text": { # Configuration for text output format.
              "mimeType": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
          },
        ],
      },
      "responseFormatSingleton": {
        "audio": { # Configuration for audio output format.
          "bitRate": 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.
          "mimeType": "A String", # The MIME type of the audio output.
          "sampleRate": 42, # Sample rate in Hz.
        },
        "image": { # Configuration for image output format.
          "aspectRatio": "A String", # The aspect ratio for the image output.
          "delivery": "A String", # The delivery mode for the image output.
          "imageSize": "A String", # The size of the image output.
          "mimeType": "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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
              },
            },
          ],
        },
        "text": { # Configuration for text output format.
          "mimeType": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
      },
      "responseMimeType": "A String", # The mime type of the response. This is required if response_format is set.
      "responseModalities": [ # 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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "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.
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                  ],
                },
                "searchType": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "serverName": "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.
              "callId": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result step.
                "isError": 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": { # A list of Content.
                  "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.
                        "mimeType": "A String", # The mime type of the audio.
                        "sampleRate": 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.
                        "mimeType": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                            ],
                          },
                          "searchType": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "serverName": "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.
                        "callId": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "isError": 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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "isError": 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "isError": 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.
                              "searchSuggestions": "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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # 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.
                          "serverName": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "isError": 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.
                        "mimeType": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "isError": 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result step.
                "result": [
                  { # The result of the Google Maps.
                    "places": [
                      {
                        "name": "A String",
                        "placeId": "A String",
                        "reviewSnippets": [
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String",
                      },
                    ],
                    "widgetContextToken": "A String",
                  },
                ],
              },
              "googleSearchResult": { # Google Search result step.
                "isError": 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.
                    "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result step.
                "contentList": { # A list of Content.
                  "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.
                        "mimeType": "A String", # The mime type of the audio.
                        "sampleRate": 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.
                        "mimeType": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                            ],
                          },
                          "searchType": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "serverName": "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.
                        "callId": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "isError": 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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "isError": 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "isError": 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.
                              "searchSuggestions": "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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # 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.
                          "serverName": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "isError": 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.
                        "mimeType": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "serverName": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result step.
                "isError": 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. # DO NOT USE -- These are for 3P JSON only
              "contentList": { # A list of Content. # The content of the step. 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.
                      "mimeType": "A String", # The mime type of the audio.
                      "sampleRate": 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.
                      "mimeType": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                          ],
                        },
                        "searchType": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "serverName": "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.
                      "callId": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "isError": 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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "isError": 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "isError": 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.
                            "searchSuggestions": "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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # 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.
                        "serverName": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "isError": 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.
                      "mimeType": "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 step. A single string.
            },
          },
        ],
      },
      "steps": [ # Required. 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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "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.
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                ],
              },
              "searchType": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "serverName": "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.
            "callId": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result step.
              "isError": 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": { # A list of Content.
                "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.
                      "mimeType": "A String", # The mime type of the audio.
                      "sampleRate": 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.
                      "mimeType": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                          ],
                        },
                        "searchType": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "serverName": "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.
                      "callId": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "isError": 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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "isError": 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "isError": 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.
                            "searchSuggestions": "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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # 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.
                        "serverName": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "isError": 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.
                      "mimeType": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
              "isError": 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result step.
              "result": [
                { # The result of the Google Maps.
                  "places": [
                    {
                      "name": "A String",
                      "placeId": "A String",
                      "reviewSnippets": [
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String",
                    },
                  ],
                  "widgetContextToken": "A String",
                },
              ],
            },
            "googleSearchResult": { # Google Search result step.
              "isError": 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.
                  "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result step.
              "contentList": { # A list of Content.
                "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.
                      "mimeType": "A String", # The mime type of the audio.
                      "sampleRate": 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.
                      "mimeType": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                          ],
                        },
                        "searchType": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "serverName": "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.
                      "callId": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "isError": 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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "isError": 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "isError": 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.
                            "searchSuggestions": "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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # 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.
                        "serverName": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "isError": 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.
                      "mimeType": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "serverName": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result step.
              "isError": 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. # DO NOT USE -- These are for 3P JSON only
            "contentList": { # A list of Content. # The content of the step. 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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "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 step. A single string.
          },
        },
      ],
      "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
      "systemInstruction": "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.
            "excludedPredefinedFunctions": [ # 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.
            "fileSearchStoreNames": [ # The file search store names to search.
              "A String",
            ],
            "metadataFilter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
            "topK": 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: GenaiVertexV1beta1Value
                ],
              },
              "nullValue": "A String", # Represents a null value.
              "numberValue": 3.14, # Represents a double value.
              "stringValue": "A String", # Represents a string value.
              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
            "enableWidget": 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.
            "searchTypes": [ # 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.
            "allowedTools": [ # 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.
            "exa_ai_search_config": { # Used to specify configuration for ExaAISearch. # Used to specify configuration for ExaAISearch.
              "api_key": "A String", # Required. The API key for ExaAiSearch.
              "custom_config": { # Optional. This field can be used to pass any parameter from the Exa.ai Search API.
                "a_key": "", # Properties of the object.
              },
            },
            "parallel_ai_search_config": { # Used to specify configuration for ParallelAISearch. # Used to specify configuration for ParallelAISearch.
              "api_key": "A String", # Optional. The API key for ParallelAiSearch.
              "custom_config": { # Optional. Custom configs for ParallelAiSearch.
                "a_key": "", # Properties of the object.
              },
            },
            "rag_store_config": { # Use to specify configuration for RAG Store. # Used to specify configuration for RagStore.
              "rag_resources": [ # Optional. The representation of the rag source.
                { # The definition of the Rag resource.
                  "rag_corpus": "A String", # Optional. RagCorpora resource name.
                  "rag_file_ids": [ # Optional. rag_file_id. The files should be in the same rag_corpus set in rag_corpus field.
                    "A String",
                  ],
                },
              ],
              "rag_retrieval_config": { # Specifies the context retrieval config. # Optional. The retrieval config for the Rag query.
                "filter": { # Config for filters. # Optional. Config for filters.
                  "metadata_filter": "A String", # Optional. String for metadata filtering.
                  "vector_distance_threshold": 3.14, # Optional. Only returns contexts with vector distance smaller than the threshold.
                  "vector_similarity_threshold": 3.14, # Optional. Only returns contexts with vector similarity larger than the threshold.
                },
                "hybrid_search": { # Config for Hybrid Search. # Optional. Config for Hybrid Search.
                  "alpha": 3.14, # Optional. Alpha value controls the weight between dense and sparse vector search results.
                },
                "ranking": { # Config for ranking and reranking. # Optional. Config for ranking and reranking.
                  "rank_service": { # Config for Rank Service. # Optional. Config for Rank Service.
                    "model_name": "A String", # Optional. The model name of the rank service.
                  },
                },
                "top_k": 42, # Optional. The number of contexts to retrieve.
              },
              "similarity_top_k": 42, # Optional. Number of top k results to return from the selected corpora.
              "vector_distance_threshold": 3.14, # Optional. Only return results with vector distance smaller than the threshold.
            },
            "retrievalTypes": [ # 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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "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.
        "cachedTokensByModality": [ # 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.
          },
        ],
        "groundingToolCount": [ # 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.
          },
        ],
        "inputTokensByModality": [ # 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.
          },
        ],
        "outputTokensByModality": [ # 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.
          },
        ],
        "toolUseTokensByModality": [ # 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.
          },
        ],
        "totalCachedTokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
        "totalInputTokens": 42, # Number of tokens in the prompt (context).
        "totalOutputTokens": 42, # Total number of tokens across all the generated responses.
        "totalThoughtTokens": 42, # Number of tokens of thoughts for thinking models.
        "totalTokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
        "totalToolUseTokens": 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.
        "code_mender_config": { # Configuration for the CodeMender agent.
          "find_request": { # Request parameters specific to FIND sessions, used for discovering vulnerabilities in a codebase. # Parameters for finding vulnerabilities.
            "description": "A String", # Additional context or custom instructions provided by the user to guide the vulnerability analysis.
            "finding_id": "A String", # The identifier of a specific finding to verify. This is primarily used in VERIFY mode to focus the agent's execution-based validation on a single vulnerability.
            "source_files": [ # A list of source files to provide as context for the scan.
              { # Content of a single file in the codebase.
                "content": "A String", # The UTF-8 encoded text content of the file.
                "path": "A String", # The relative path of the file from the project root.
              },
            ],
          },
          "fix_request": { # Request parameters specific to FIX sessions, used for generating and validating security patches. # Parameters for fixing vulnerabilities.
            "description": "A String", # Additional context or custom instructions provided by the user to guide the patch generation process.
            "finding_id": "A String", # The identifier of the specific security finding to be remediated. This ID maps to a previously discovered vulnerability.
            "source_files": [ # A list of source files providing context for the remediation. These files are typically the ones containing the identified vulnerability.
              { # Content of a single file in the codebase.
                "content": "A String", # The UTF-8 encoded text content of the file.
                "path": "A String", # The relative path of the file from the project root.
              },
            ],
          },
          "model": "A String", # The name of the model to use for the CodeMender agent. One CodeMender session will only use one model.
          "session_config": { # The configuration of CodeMender sessions. # Optional session-specific configurations to override default agent behavior.
            "max_rounds": 42, # The maximum number of interaction rounds the agent is allowed to perform before reaching a timeout.
            "pipeline_mode": "A String", # The pipeline mode of a CodeMender session. It can only be used for a find session.
            "topology": "A String", # The cognitive architecture or "thinking" topology used by the agent (e.g. "default", "deep").
          },
          "session_id": "A String", # Parameter for grouping multiple interactions that belong to the same CodeMender session.
        },
        "deepResearchConfig": { # Configuration for the Deep Research agent.
          "collaborativePlanning": 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.
          "enableBigqueryTool": True or False, # Enables bigquery tool for the Deep Research agent.
          "thinkingSummaries": "A String", # Whether to include thought summaries in the response.
          "visualization": "A String", # Whether to include visualizations in the response.
        },
        "dynamicConfig": { # 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
          "mimeType": "A String", # The mime type of the audio.
          "sampleRate": 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.
          "mimeType": "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.
          "mimeType": "A String", # The mime type of the image.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the image.
        },
        "text": { # A text content block.
          "annotations": [ # Citation information for model-generated content.
            { # Citation information for model-generated content.
              "endIndex": 42, # End of the attributed segment, exclusive.
              "fileCitation": { # A file citation annotation. # A file citation annotation.
                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "documentUri": "A String", # The URI of the file.
                "fileName": "A String", # The name of the file.
                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                "pageNumber": 42, # Page number of the cited document, if applicable.
                "source": "A String", # Source attributed for a portion of the text.
              },
              "placeCitation": { # A place citation annotation. # A place citation annotation.
                "name": "A String", # Title of the place.
                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                    "reviewId": "A String", # The ID of the review snippet.
                    "title": "A String", # Title of the review.
                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                  },
                ],
                "url": "A String", # URI reference of the place.
              },
              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
              "urlCitation": { # A URL citation annotation. # 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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
              ],
            },
            "searchType": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool which was called.
            "serverName": "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.
          "callId": "A String", # Required. ID to match the ID from the function call block.
          "codeExecutionResult": { # Code execution result content.
            "isError": 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "isError": 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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                ],
                "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
              },
            ],
          },
          "googleSearchResult": { # Google Search result content.
            "isError": 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.
                "searchSuggestions": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
            "serverName": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextResult": { # URL context result content.
            "isError": 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.
          "mimeType": "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.
              "mimeType": "A String", # The mime type of the audio.
              "sampleRate": 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.
              "mimeType": "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.
              "mimeType": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "endIndex": 42, # End of the attributed segment, exclusive.
                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "documentUri": "A String", # The URI of the file.
                    "fileName": "A String", # The name of the file.
                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                    "pageNumber": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "urlCitation": { # A URL citation annotation. # 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                  ],
                },
                "searchType": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "serverName": "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.
              "callId": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "isError": 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "isError": 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "isError": 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.
                    "searchSuggestions": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                "serverName": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "isError": 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.
              "mimeType": "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).
      "envId": "A String", # The environment ID for the interaction. Can be 'remote' for default environment.
      "environmentId": "A String", # Output only. The environment ID for the interaction. Only populated if environment config is set in the request.
      "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.
        "cached_content": "A String", # The name of the cached content used as context to serve the prediction. Note: only used in explicit caching, where users can have control over caching (e.g. what content to cache) and enjoy guaranteed cost savings. Format: `projects/{project}/locations/{location}/cachedContents/{cachedContent}`
        "generationConfig": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
          "frequency_penalty": 3.14, # Penalizes tokens based on their frequency in the generated text. A positive value helps to reduce the repetition of words and phrases. Valid values can range from [-2.0, 2.0].
          "imageConfig": { # The configuration for image interaction. # Configuration for image interaction.
            "aspectRatio": "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.
            "imageSize": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
          },
          "maxOutputTokens": 42, # The maximum number of tokens to include in the response.
          "presence_penalty": 3.14, # Penalizes tokens that have already appeared in the generated text. A positive value encourages the model to generate more diverse and less repetitive text. Valid values can range from [-2.0, 2.0].
          "seed": 42, # Seed used in decoding for reproducibility.
          "speechConfig": [ # 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.
            },
          ],
          "stopSequences": [ # A list of character sequences that will stop output interaction.
            "A String",
          ],
          "temperature": 3.14, # Controls the randomness of the output.
          "thinkingLevel": "A String", # The level of thought tokens that the model should generate.
          "thinkingSummaries": "A String", # Whether to include thought summaries in the response.
          "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
            "allowedTools": { # 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.
          "topP": 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.
            "mimeType": "A String", # The mime type of the audio.
            "sampleRate": 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.
            "mimeType": "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.
            "mimeType": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "endIndex": 42, # End of the attributed segment, exclusive.
                "fileCitation": { # A file citation annotation. # A file citation annotation.
                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "documentUri": "A String", # The URI of the file.
                  "fileName": "A String", # The name of the file.
                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                  "pageNumber": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "placeCitation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "urlCitation": { # A URL citation annotation. # 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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                ],
              },
              "searchType": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "serverName": "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.
            "callId": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result content.
              "isError": 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "isError": 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                  ],
                  "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                },
              ],
            },
            "googleSearchResult": { # Google Search result content.
              "isError": 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.
                  "searchSuggestions": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
              "serverName": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result content.
              "isError": 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.
            "mimeType": "A String", # The mime type of the video.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the video.
          },
        },
      ],
      "previousInteractionId": "A String", # The ID of the previous interaction, if any.
      "remoteEnvironment": { # Configuration for a custom environment.
        "networkAllowlist": { # Network egress configuration for the environment. # Allow only specific domains.
          "allowlist": [ # List of allowed domains and their configurations.
            { # A network egress rule that controls which external domains the environment is allowed to reach. Each rule identifies a target domain and, optionally, a set of HTTP headers to inject into every matching outbound request.
              "domain": "A String", # The domain pattern to match for this rule. Use an exact hostname (e.g., `github.com`), a wildcard prefix (e.g., `*.googleapis.com`), or `*` to match all domains.
              "transform": { # Headers to inject into requests matching this rule. Key: header name (e.g., "Authorization"). Value: header value (e.g., "Bearer your-token").
                "a_key": "A String",
              },
            },
          ],
        },
        "networkMode": "A String", # Network egress mode.
        "sources": [
          { # A source to be mounted into the environment.
            "content": "A String", # The inline content if `type` is `INLINE`.
            "encoding": "A String", # Optional encoding for inline content (e.g. `base64`).
            "source": "A String", # The source of the environment. For GCS, this is the GCS path. For GitHub, this is the GitHub path.
            "target": "A String", # Where the source should appear in the environment.
            "type": "A String",
          },
        ],
      },
      "responseFormat": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, 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: GenaiVertexV1beta1Value
          ],
        },
        "nullValue": "A String", # Represents a null value.
        "numberValue": 3.14, # Represents a double value.
        "stringValue": "A String", # Represents a string value.
        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
      },
      "responseFormatList": {
        "responseFormats": [
          {
            "audio": { # Configuration for audio output format.
              "bitRate": 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.
              "mimeType": "A String", # The MIME type of the audio output.
              "sampleRate": 42, # Sample rate in Hz.
            },
            "image": { # Configuration for image output format.
              "aspectRatio": "A String", # The aspect ratio for the image output.
              "delivery": "A String", # The delivery mode for the image output.
              "imageSize": "A String", # The size of the image output.
              "mimeType": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
            "text": { # Configuration for text output format.
              "mimeType": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
          },
        ],
      },
      "responseFormatSingleton": {
        "audio": { # Configuration for audio output format.
          "bitRate": 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.
          "mimeType": "A String", # The MIME type of the audio output.
          "sampleRate": 42, # Sample rate in Hz.
        },
        "image": { # Configuration for image output format.
          "aspectRatio": "A String", # The aspect ratio for the image output.
          "delivery": "A String", # The delivery mode for the image output.
          "imageSize": "A String", # The size of the image output.
          "mimeType": "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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
              },
            },
          ],
        },
        "text": { # Configuration for text output format.
          "mimeType": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
      },
      "responseMimeType": "A String", # The mime type of the response. This is required if response_format is set.
      "responseModalities": [ # 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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "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.
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                  ],
                },
                "searchType": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "serverName": "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.
              "callId": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result step.
                "isError": 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": { # A list of Content.
                  "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.
                        "mimeType": "A String", # The mime type of the audio.
                        "sampleRate": 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.
                        "mimeType": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                            ],
                          },
                          "searchType": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "serverName": "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.
                        "callId": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "isError": 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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "isError": 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "isError": 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.
                              "searchSuggestions": "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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # 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.
                          "serverName": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "isError": 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.
                        "mimeType": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "isError": 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result step.
                "result": [
                  { # The result of the Google Maps.
                    "places": [
                      {
                        "name": "A String",
                        "placeId": "A String",
                        "reviewSnippets": [
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String",
                      },
                    ],
                    "widgetContextToken": "A String",
                  },
                ],
              },
              "googleSearchResult": { # Google Search result step.
                "isError": 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.
                    "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result step.
                "contentList": { # A list of Content.
                  "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.
                        "mimeType": "A String", # The mime type of the audio.
                        "sampleRate": 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.
                        "mimeType": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                            ],
                          },
                          "searchType": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "serverName": "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.
                        "callId": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "isError": 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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "isError": 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "isError": 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.
                              "searchSuggestions": "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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # 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.
                          "serverName": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "isError": 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.
                        "mimeType": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "serverName": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result step.
                "isError": 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. # DO NOT USE -- These are for 3P JSON only
              "contentList": { # A list of Content. # The content of the step. 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.
                      "mimeType": "A String", # The mime type of the audio.
                      "sampleRate": 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.
                      "mimeType": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                          ],
                        },
                        "searchType": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "serverName": "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.
                      "callId": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "isError": 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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "isError": 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "isError": 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.
                            "searchSuggestions": "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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # 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.
                        "serverName": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "isError": 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.
                      "mimeType": "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 step. A single string.
            },
          },
        ],
      },
      "steps": [ # Required. 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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "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.
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                ],
              },
              "searchType": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "serverName": "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.
            "callId": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result step.
              "isError": 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": { # A list of Content.
                "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.
                      "mimeType": "A String", # The mime type of the audio.
                      "sampleRate": 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.
                      "mimeType": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                          ],
                        },
                        "searchType": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "serverName": "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.
                      "callId": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "isError": 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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "isError": 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "isError": 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.
                            "searchSuggestions": "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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # 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.
                        "serverName": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "isError": 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.
                      "mimeType": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
              "isError": 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result step.
              "result": [
                { # The result of the Google Maps.
                  "places": [
                    {
                      "name": "A String",
                      "placeId": "A String",
                      "reviewSnippets": [
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String",
                    },
                  ],
                  "widgetContextToken": "A String",
                },
              ],
            },
            "googleSearchResult": { # Google Search result step.
              "isError": 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.
                  "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result step.
              "contentList": { # A list of Content.
                "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.
                      "mimeType": "A String", # The mime type of the audio.
                      "sampleRate": 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.
                      "mimeType": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                          ],
                        },
                        "searchType": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "serverName": "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.
                      "callId": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "isError": 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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "isError": 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "isError": 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.
                            "searchSuggestions": "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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # 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.
                        "serverName": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "isError": 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.
                      "mimeType": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "serverName": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result step.
              "isError": 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. # DO NOT USE -- These are for 3P JSON only
            "contentList": { # A list of Content. # The content of the step. 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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "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 step. A single string.
          },
        },
      ],
      "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
      "systemInstruction": "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.
            "excludedPredefinedFunctions": [ # 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.
            "fileSearchStoreNames": [ # The file search store names to search.
              "A String",
            ],
            "metadataFilter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
            "topK": 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: GenaiVertexV1beta1Value
                ],
              },
              "nullValue": "A String", # Represents a null value.
              "numberValue": 3.14, # Represents a double value.
              "stringValue": "A String", # Represents a string value.
              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
            "enableWidget": 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.
            "searchTypes": [ # 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.
            "allowedTools": [ # 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.
            "exa_ai_search_config": { # Used to specify configuration for ExaAISearch. # Used to specify configuration for ExaAISearch.
              "api_key": "A String", # Required. The API key for ExaAiSearch.
              "custom_config": { # Optional. This field can be used to pass any parameter from the Exa.ai Search API.
                "a_key": "", # Properties of the object.
              },
            },
            "parallel_ai_search_config": { # Used to specify configuration for ParallelAISearch. # Used to specify configuration for ParallelAISearch.
              "api_key": "A String", # Optional. The API key for ParallelAiSearch.
              "custom_config": { # Optional. Custom configs for ParallelAiSearch.
                "a_key": "", # Properties of the object.
              },
            },
            "rag_store_config": { # Use to specify configuration for RAG Store. # Used to specify configuration for RagStore.
              "rag_resources": [ # Optional. The representation of the rag source.
                { # The definition of the Rag resource.
                  "rag_corpus": "A String", # Optional. RagCorpora resource name.
                  "rag_file_ids": [ # Optional. rag_file_id. The files should be in the same rag_corpus set in rag_corpus field.
                    "A String",
                  ],
                },
              ],
              "rag_retrieval_config": { # Specifies the context retrieval config. # Optional. The retrieval config for the Rag query.
                "filter": { # Config for filters. # Optional. Config for filters.
                  "metadata_filter": "A String", # Optional. String for metadata filtering.
                  "vector_distance_threshold": 3.14, # Optional. Only returns contexts with vector distance smaller than the threshold.
                  "vector_similarity_threshold": 3.14, # Optional. Only returns contexts with vector similarity larger than the threshold.
                },
                "hybrid_search": { # Config for Hybrid Search. # Optional. Config for Hybrid Search.
                  "alpha": 3.14, # Optional. Alpha value controls the weight between dense and sparse vector search results.
                },
                "ranking": { # Config for ranking and reranking. # Optional. Config for ranking and reranking.
                  "rank_service": { # Config for Rank Service. # Optional. Config for Rank Service.
                    "model_name": "A String", # Optional. The model name of the rank service.
                  },
                },
                "top_k": 42, # Optional. The number of contexts to retrieve.
              },
              "similarity_top_k": 42, # Optional. Number of top k results to return from the selected corpora.
              "vector_distance_threshold": 3.14, # Optional. Only return results with vector distance smaller than the threshold.
            },
            "retrievalTypes": [ # 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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "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.
        "cachedTokensByModality": [ # 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.
          },
        ],
        "groundingToolCount": [ # 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.
          },
        ],
        "inputTokensByModality": [ # 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.
          },
        ],
        "outputTokensByModality": [ # 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.
          },
        ],
        "toolUseTokensByModality": [ # 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.
          },
        ],
        "totalCachedTokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
        "totalInputTokens": 42, # Number of tokens in the prompt (context).
        "totalOutputTokens": 42, # Total number of tokens across all the generated responses.
        "totalThoughtTokens": 42, # Number of tokens of thoughts for thinking models.
        "totalTokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
        "totalToolUseTokens": 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.
        "code_mender_config": { # Configuration for the CodeMender agent.
          "find_request": { # Request parameters specific to FIND sessions, used for discovering vulnerabilities in a codebase. # Parameters for finding vulnerabilities.
            "description": "A String", # Additional context or custom instructions provided by the user to guide the vulnerability analysis.
            "finding_id": "A String", # The identifier of a specific finding to verify. This is primarily used in VERIFY mode to focus the agent's execution-based validation on a single vulnerability.
            "source_files": [ # A list of source files to provide as context for the scan.
              { # Content of a single file in the codebase.
                "content": "A String", # The UTF-8 encoded text content of the file.
                "path": "A String", # The relative path of the file from the project root.
              },
            ],
          },
          "fix_request": { # Request parameters specific to FIX sessions, used for generating and validating security patches. # Parameters for fixing vulnerabilities.
            "description": "A String", # Additional context or custom instructions provided by the user to guide the patch generation process.
            "finding_id": "A String", # The identifier of the specific security finding to be remediated. This ID maps to a previously discovered vulnerability.
            "source_files": [ # A list of source files providing context for the remediation. These files are typically the ones containing the identified vulnerability.
              { # Content of a single file in the codebase.
                "content": "A String", # The UTF-8 encoded text content of the file.
                "path": "A String", # The relative path of the file from the project root.
              },
            ],
          },
          "model": "A String", # The name of the model to use for the CodeMender agent. One CodeMender session will only use one model.
          "session_config": { # The configuration of CodeMender sessions. # Optional session-specific configurations to override default agent behavior.
            "max_rounds": 42, # The maximum number of interaction rounds the agent is allowed to perform before reaching a timeout.
            "pipeline_mode": "A String", # The pipeline mode of a CodeMender session. It can only be used for a find session.
            "topology": "A String", # The cognitive architecture or "thinking" topology used by the agent (e.g. "default", "deep").
          },
          "session_id": "A String", # Parameter for grouping multiple interactions that belong to the same CodeMender session.
        },
        "deepResearchConfig": { # Configuration for the Deep Research agent.
          "collaborativePlanning": 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.
          "enableBigqueryTool": True or False, # Enables bigquery tool for the Deep Research agent.
          "thinkingSummaries": "A String", # Whether to include thought summaries in the response.
          "visualization": "A String", # Whether to include visualizations in the response.
        },
        "dynamicConfig": { # 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
          "mimeType": "A String", # The mime type of the audio.
          "sampleRate": 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.
          "mimeType": "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.
          "mimeType": "A String", # The mime type of the image.
          "resolution": "A String", # The resolution of the media.
          "uri": "A String", # The URI of the image.
        },
        "text": { # A text content block.
          "annotations": [ # Citation information for model-generated content.
            { # Citation information for model-generated content.
              "endIndex": 42, # End of the attributed segment, exclusive.
              "fileCitation": { # A file citation annotation. # A file citation annotation.
                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                    { # Represents a single field in a struct.
                      "name": "A String",
                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                        "boolValue": True or False, # Represents a boolean value.
                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                          "values": [ # Repeated field of dynamically typed values.
                            # Object with schema name: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "documentUri": "A String", # The URI of the file.
                "fileName": "A String", # The name of the file.
                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                "pageNumber": 42, # Page number of the cited document, if applicable.
                "source": "A String", # Source attributed for a portion of the text.
              },
              "placeCitation": { # A place citation annotation. # A place citation annotation.
                "name": "A String", # Title of the place.
                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                    "reviewId": "A String", # The ID of the review snippet.
                    "title": "A String", # Title of the review.
                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                  },
                ],
                "url": "A String", # URI reference of the place.
              },
              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
              "urlCitation": { # A URL citation annotation. # 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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
              ],
            },
            "searchType": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
            "name": "A String", # Required. The name of the tool which was called.
            "serverName": "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.
          "callId": "A String", # Required. ID to match the ID from the function call block.
          "codeExecutionResult": { # Code execution result content.
            "isError": 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                          "title": "A String", # The title of the URL.
                          "url": "A String", # The URL.
                        },
                      },
                    ],
                    "text": "A String", # Required. The text content.
                  },
                },
              ],
            },
            "isError": 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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                ],
                "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
              },
            ],
          },
          "googleSearchResult": { # Google Search result content.
            "isError": 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.
                "searchSuggestions": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
            "serverName": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
          },
          "signature": "A String", # A signature hash for backend validation.
          "urlContextResult": { # URL context result content.
            "isError": 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.
          "mimeType": "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.
              "mimeType": "A String", # The mime type of the audio.
              "sampleRate": 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.
              "mimeType": "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.
              "mimeType": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "endIndex": 42, # End of the attributed segment, exclusive.
                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "documentUri": "A String", # The URI of the file.
                    "fileName": "A String", # The name of the file.
                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                    "pageNumber": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "urlCitation": { # A URL citation annotation. # 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                  ],
                },
                "searchType": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "serverName": "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.
              "callId": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "isError": 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "isError": 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "isError": 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.
                    "searchSuggestions": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                "serverName": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "isError": 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.
              "mimeType": "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).
      "envId": "A String", # The environment ID for the interaction. Can be 'remote' for default environment.
      "environmentId": "A String", # Output only. The environment ID for the interaction. Only populated if environment config is set in the request.
      "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.
        "cached_content": "A String", # The name of the cached content used as context to serve the prediction. Note: only used in explicit caching, where users can have control over caching (e.g. what content to cache) and enjoy guaranteed cost savings. Format: `projects/{project}/locations/{location}/cachedContents/{cachedContent}`
        "generationConfig": { # Configuration parameters for model interactions. # Input only. Configuration parameters for the model interaction.
          "frequency_penalty": 3.14, # Penalizes tokens based on their frequency in the generated text. A positive value helps to reduce the repetition of words and phrases. Valid values can range from [-2.0, 2.0].
          "imageConfig": { # The configuration for image interaction. # Configuration for image interaction.
            "aspectRatio": "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.
            "imageSize": "A String", # Specifies the size of generated images. Supported values are `1K`, `2K`, `4K`. If not specified, the model will use default value `1K`.
          },
          "maxOutputTokens": 42, # The maximum number of tokens to include in the response.
          "presence_penalty": 3.14, # Penalizes tokens that have already appeared in the generated text. A positive value encourages the model to generate more diverse and less repetitive text. Valid values can range from [-2.0, 2.0].
          "seed": 42, # Seed used in decoding for reproducibility.
          "speechConfig": [ # 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.
            },
          ],
          "stopSequences": [ # A list of character sequences that will stop output interaction.
            "A String",
          ],
          "temperature": 3.14, # Controls the randomness of the output.
          "thinkingLevel": "A String", # The level of thought tokens that the model should generate.
          "thinkingSummaries": "A String", # Whether to include thought summaries in the response.
          "toolChoiceConfig": { # The tool choice configuration containing allowed tools. # The config for the tool choice.
            "allowedTools": { # 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.
          "topP": 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.
            "mimeType": "A String", # The mime type of the audio.
            "sampleRate": 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.
            "mimeType": "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.
            "mimeType": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "endIndex": 42, # End of the attributed segment, exclusive.
                "fileCitation": { # A file citation annotation. # A file citation annotation.
                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "documentUri": "A String", # The URI of the file.
                  "fileName": "A String", # The name of the file.
                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                  "pageNumber": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "placeCitation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "urlCitation": { # A URL citation annotation. # 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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                ],
              },
              "searchType": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "serverName": "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.
            "callId": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result content.
              "isError": 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "isError": 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                  ],
                  "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                },
              ],
            },
            "googleSearchResult": { # Google Search result content.
              "isError": 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.
                  "searchSuggestions": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
              "serverName": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result content.
              "isError": 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.
            "mimeType": "A String", # The mime type of the video.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the video.
          },
        },
      ],
      "previousInteractionId": "A String", # The ID of the previous interaction, if any.
      "remoteEnvironment": { # Configuration for a custom environment.
        "networkAllowlist": { # Network egress configuration for the environment. # Allow only specific domains.
          "allowlist": [ # List of allowed domains and their configurations.
            { # A network egress rule that controls which external domains the environment is allowed to reach. Each rule identifies a target domain and, optionally, a set of HTTP headers to inject into every matching outbound request.
              "domain": "A String", # The domain pattern to match for this rule. Use an exact hostname (e.g., `github.com`), a wildcard prefix (e.g., `*.googleapis.com`), or `*` to match all domains.
              "transform": { # Headers to inject into requests matching this rule. Key: header name (e.g., "Authorization"). Value: header value (e.g., "Bearer your-token").
                "a_key": "A String",
              },
            },
          ],
        },
        "networkMode": "A String", # Network egress mode.
        "sources": [
          { # A source to be mounted into the environment.
            "content": "A String", # The inline content if `type` is `INLINE`.
            "encoding": "A String", # Optional encoding for inline content (e.g. `base64`).
            "source": "A String", # The source of the environment. For GCS, this is the GCS path. For GitHub, this is the GitHub path.
            "target": "A String", # Where the source should appear in the environment.
            "type": "A String",
          },
        ],
      },
      "responseFormat": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, 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: GenaiVertexV1beta1Value
          ],
        },
        "nullValue": "A String", # Represents a null value.
        "numberValue": 3.14, # Represents a double value.
        "stringValue": "A String", # Represents a string value.
        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
      },
      "responseFormatList": {
        "responseFormats": [
          {
            "audio": { # Configuration for audio output format.
              "bitRate": 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.
              "mimeType": "A String", # The MIME type of the audio output.
              "sampleRate": 42, # Sample rate in Hz.
            },
            "image": { # Configuration for image output format.
              "aspectRatio": "A String", # The aspect ratio for the image output.
              "delivery": "A String", # The delivery mode for the image output.
              "imageSize": "A String", # The size of the image output.
              "mimeType": "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: GenaiVertexV1beta1Value
                      ],
                    },
                    "nullValue": "A String", # Represents a null value.
                    "numberValue": 3.14, # Represents a double value.
                    "stringValue": "A String", # Represents a string value.
                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                  },
                },
              ],
            },
            "text": { # Configuration for text output format.
              "mimeType": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
          },
        ],
      },
      "responseFormatSingleton": {
        "audio": { # Configuration for audio output format.
          "bitRate": 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.
          "mimeType": "A String", # The MIME type of the audio output.
          "sampleRate": 42, # Sample rate in Hz.
        },
        "image": { # Configuration for image output format.
          "aspectRatio": "A String", # The aspect ratio for the image output.
          "delivery": "A String", # The delivery mode for the image output.
          "imageSize": "A String", # The size of the image output.
          "mimeType": "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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
              },
            },
          ],
        },
        "text": { # Configuration for text output format.
          "mimeType": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
      },
      "responseMimeType": "A String", # The mime type of the response. This is required if response_format is set.
      "responseModalities": [ # 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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "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.
                { # The content of the response.
                  "audio": { # An audio content block.
                    "channels": 42, # The number of audio channels.
                    "data": "A String", # The audio content.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "A String", # The mime type of the video.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the video.
                  },
                },
              ],
            },
            "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                  ],
                },
                "searchType": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "serverName": "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.
              "callId": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result step.
                "isError": 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": { # A list of Content.
                  "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.
                        "mimeType": "A String", # The mime type of the audio.
                        "sampleRate": 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.
                        "mimeType": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                            ],
                          },
                          "searchType": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "serverName": "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.
                        "callId": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "isError": 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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "isError": 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "isError": 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.
                              "searchSuggestions": "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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # 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.
                          "serverName": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "isError": 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.
                        "mimeType": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "isError": 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "googleMapsResult": { # Google Maps result step.
                "result": [
                  { # The result of the Google Maps.
                    "places": [
                      {
                        "name": "A String",
                        "placeId": "A String",
                        "reviewSnippets": [
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String",
                      },
                    ],
                    "widgetContextToken": "A String",
                  },
                ],
              },
              "googleSearchResult": { # Google Search result step.
                "isError": 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.
                    "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                  },
                ],
              },
              "mcpServerToolResult": { # MCPServer tool result step.
                "contentList": { # A list of Content.
                  "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.
                        "mimeType": "A String", # The mime type of the audio.
                        "sampleRate": 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.
                        "mimeType": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                            ],
                          },
                          "searchType": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "name": "A String", # Required. The name of the tool which was called.
                          "serverName": "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.
                        "callId": "A String", # Required. ID to match the ID from the function call block.
                        "codeExecutionResult": { # Code execution result content.
                          "isError": 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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                        "title": "A String", # The title of the URL.
                                        "url": "A String", # The URL.
                                      },
                                    },
                                  ],
                                  "text": "A String", # Required. The text content.
                                },
                              },
                            ],
                          },
                          "isError": 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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                              ],
                              "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                            },
                          ],
                        },
                        "googleSearchResult": { # Google Search result content.
                          "isError": 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.
                              "searchSuggestions": "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.
                                  "mimeType": "A String", # The mime type of the image.
                                  "resolution": "A String", # The resolution of the media.
                                  "uri": "A String", # The URI of the image.
                                },
                                "text": { # A text content block.
                                  "annotations": [ # Citation information for model-generated content.
                                    { # Citation information for model-generated content.
                                      "endIndex": 42, # End of the attributed segment, exclusive.
                                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                            { # Represents a single field in a struct.
                                              "name": "A String",
                                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                                "boolValue": True or False, # Represents a boolean value.
                                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                  "values": [ # Repeated field of dynamically typed values.
                                                    # Object with schema name: GenaiVertexV1beta1Value
                                                  ],
                                                },
                                                "nullValue": "A String", # Represents a null value.
                                                "numberValue": 3.14, # Represents a double value.
                                                "stringValue": "A String", # Represents a string value.
                                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                              },
                                            },
                                          ],
                                        },
                                        "documentUri": "A String", # The URI of the file.
                                        "fileName": "A String", # The name of the file.
                                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                        "pageNumber": 42, # Page number of the cited document, if applicable.
                                        "source": "A String", # Source attributed for a portion of the text.
                                      },
                                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                                        "name": "A String", # Title of the place.
                                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                            "reviewId": "A String", # The ID of the review snippet.
                                            "title": "A String", # Title of the review.
                                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                                          },
                                        ],
                                        "url": "A String", # URI reference of the place.
                                      },
                                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                      "urlCitation": { # A URL citation annotation. # 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.
                          "serverName": "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: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                        },
                        "signature": "A String", # A signature hash for backend validation.
                        "urlContextResult": { # URL context result content.
                          "isError": 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.
                        "mimeType": "A String", # The mime type of the video.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the video.
                      },
                    },
                  ],
                },
                "name": "A String", # Name of the tool which is called for this specific tool call.
                "serverName": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result step.
                "isError": 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. # DO NOT USE -- These are for 3P JSON only
              "contentList": { # A list of Content. # The content of the step. 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.
                      "mimeType": "A String", # The mime type of the audio.
                      "sampleRate": 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.
                      "mimeType": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                          ],
                        },
                        "searchType": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "serverName": "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.
                      "callId": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "isError": 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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "isError": 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "isError": 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.
                            "searchSuggestions": "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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # 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.
                        "serverName": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "isError": 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.
                      "mimeType": "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 step. A single string.
            },
          },
        ],
      },
      "steps": [ # Required. 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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "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.
              { # The content of the response.
                "audio": { # An audio content block.
                  "channels": 42, # The number of audio channels.
                  "data": "A String", # The audio content.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                ],
              },
              "searchType": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "serverName": "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.
            "callId": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result step.
              "isError": 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": { # A list of Content.
                "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.
                      "mimeType": "A String", # The mime type of the audio.
                      "sampleRate": 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.
                      "mimeType": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                          ],
                        },
                        "searchType": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "serverName": "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.
                      "callId": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "isError": 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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "isError": 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "isError": 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.
                            "searchSuggestions": "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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # 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.
                        "serverName": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "isError": 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.
                      "mimeType": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
              "isError": 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "googleMapsResult": { # Google Maps result step.
              "result": [
                { # The result of the Google Maps.
                  "places": [
                    {
                      "name": "A String",
                      "placeId": "A String",
                      "reviewSnippets": [
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String",
                    },
                  ],
                  "widgetContextToken": "A String",
                },
              ],
            },
            "googleSearchResult": { # Google Search result step.
              "isError": 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.
                  "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
                },
              ],
            },
            "mcpServerToolResult": { # MCPServer tool result step.
              "contentList": { # A list of Content.
                "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.
                      "mimeType": "A String", # The mime type of the audio.
                      "sampleRate": 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.
                      "mimeType": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                          ],
                        },
                        "searchType": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "name": "A String", # Required. The name of the tool which was called.
                        "serverName": "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.
                      "callId": "A String", # Required. ID to match the ID from the function call block.
                      "codeExecutionResult": { # Code execution result content.
                        "isError": 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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                      "title": "A String", # The title of the URL.
                                      "url": "A String", # The URL.
                                    },
                                  },
                                ],
                                "text": "A String", # Required. The text content.
                              },
                            },
                          ],
                        },
                        "isError": 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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                            ],
                            "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                          },
                        ],
                      },
                      "googleSearchResult": { # Google Search result content.
                        "isError": 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.
                            "searchSuggestions": "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.
                                "mimeType": "A String", # The mime type of the image.
                                "resolution": "A String", # The resolution of the media.
                                "uri": "A String", # The URI of the image.
                              },
                              "text": { # A text content block.
                                "annotations": [ # Citation information for model-generated content.
                                  { # Citation information for model-generated content.
                                    "endIndex": 42, # End of the attributed segment, exclusive.
                                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                          { # Represents a single field in a struct.
                                            "name": "A String",
                                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                              "boolValue": True or False, # Represents a boolean value.
                                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                                "values": [ # Repeated field of dynamically typed values.
                                                  # Object with schema name: GenaiVertexV1beta1Value
                                                ],
                                              },
                                              "nullValue": "A String", # Represents a null value.
                                              "numberValue": 3.14, # Represents a double value.
                                              "stringValue": "A String", # Represents a string value.
                                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                            },
                                          },
                                        ],
                                      },
                                      "documentUri": "A String", # The URI of the file.
                                      "fileName": "A String", # The name of the file.
                                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                      "pageNumber": 42, # Page number of the cited document, if applicable.
                                      "source": "A String", # Source attributed for a portion of the text.
                                    },
                                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                                      "name": "A String", # Title of the place.
                                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                          "reviewId": "A String", # The ID of the review snippet.
                                          "title": "A String", # Title of the review.
                                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                                        },
                                      ],
                                      "url": "A String", # URI reference of the place.
                                    },
                                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                    "urlCitation": { # A URL citation annotation. # 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.
                        "serverName": "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: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                      },
                      "signature": "A String", # A signature hash for backend validation.
                      "urlContextResult": { # URL context result content.
                        "isError": 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.
                      "mimeType": "A String", # The mime type of the video.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the video.
                    },
                  },
                ],
              },
              "name": "A String", # Name of the tool which is called for this specific tool call.
              "serverName": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result step.
              "isError": 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. # DO NOT USE -- These are for 3P JSON only
            "contentList": { # A list of Content. # The content of the step. 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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "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 step. A single string.
          },
        },
      ],
      "stringContent": "A String", # A string input for the interaction, it will be processed as a single text input.
      "systemInstruction": "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.
            "excludedPredefinedFunctions": [ # 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.
            "fileSearchStoreNames": [ # The file search store names to search.
              "A String",
            ],
            "metadataFilter": "A String", # Metadata filter to apply to the semantic retrieval documents and chunks.
            "topK": 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: GenaiVertexV1beta1Value
                ],
              },
              "nullValue": "A String", # Represents a null value.
              "numberValue": 3.14, # Represents a double value.
              "stringValue": "A String", # Represents a string value.
              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
            "enableWidget": 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.
            "searchTypes": [ # 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.
            "allowedTools": [ # 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.
            "exa_ai_search_config": { # Used to specify configuration for ExaAISearch. # Used to specify configuration for ExaAISearch.
              "api_key": "A String", # Required. The API key for ExaAiSearch.
              "custom_config": { # Optional. This field can be used to pass any parameter from the Exa.ai Search API.
                "a_key": "", # Properties of the object.
              },
            },
            "parallel_ai_search_config": { # Used to specify configuration for ParallelAISearch. # Used to specify configuration for ParallelAISearch.
              "api_key": "A String", # Optional. The API key for ParallelAiSearch.
              "custom_config": { # Optional. Custom configs for ParallelAiSearch.
                "a_key": "", # Properties of the object.
              },
            },
            "rag_store_config": { # Use to specify configuration for RAG Store. # Used to specify configuration for RagStore.
              "rag_resources": [ # Optional. The representation of the rag source.
                { # The definition of the Rag resource.
                  "rag_corpus": "A String", # Optional. RagCorpora resource name.
                  "rag_file_ids": [ # Optional. rag_file_id. The files should be in the same rag_corpus set in rag_corpus field.
                    "A String",
                  ],
                },
              ],
              "rag_retrieval_config": { # Specifies the context retrieval config. # Optional. The retrieval config for the Rag query.
                "filter": { # Config for filters. # Optional. Config for filters.
                  "metadata_filter": "A String", # Optional. String for metadata filtering.
                  "vector_distance_threshold": 3.14, # Optional. Only returns contexts with vector distance smaller than the threshold.
                  "vector_similarity_threshold": 3.14, # Optional. Only returns contexts with vector similarity larger than the threshold.
                },
                "hybrid_search": { # Config for Hybrid Search. # Optional. Config for Hybrid Search.
                  "alpha": 3.14, # Optional. Alpha value controls the weight between dense and sparse vector search results.
                },
                "ranking": { # Config for ranking and reranking. # Optional. Config for ranking and reranking.
                  "rank_service": { # Config for Rank Service. # Optional. Config for Rank Service.
                    "model_name": "A String", # Optional. The model name of the rank service.
                  },
                },
                "top_k": 42, # Optional. The number of contexts to retrieve.
              },
              "similarity_top_k": 42, # Optional. Number of top k results to return from the selected corpora.
              "vector_distance_threshold": 3.14, # Optional. Only return results with vector distance smaller than the threshold.
            },
            "retrievalTypes": [ # 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.
                    "mimeType": "A String", # The mime type of the audio.
                    "sampleRate": 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.
                    "mimeType": "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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                        ],
                      },
                      "searchType": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "name": "A String", # Required. The name of the tool which was called.
                      "serverName": "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.
                    "callId": "A String", # Required. ID to match the ID from the function call block.
                    "codeExecutionResult": { # Code execution result content.
                      "isError": 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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                    "title": "A String", # The title of the URL.
                                    "url": "A String", # The URL.
                                  },
                                },
                              ],
                              "text": "A String", # Required. The text content.
                            },
                          },
                        ],
                      },
                      "isError": 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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                          ],
                          "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                        },
                      ],
                    },
                    "googleSearchResult": { # Google Search result content.
                      "isError": 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.
                          "searchSuggestions": "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.
                              "mimeType": "A String", # The mime type of the image.
                              "resolution": "A String", # The resolution of the media.
                              "uri": "A String", # The URI of the image.
                            },
                            "text": { # A text content block.
                              "annotations": [ # Citation information for model-generated content.
                                { # Citation information for model-generated content.
                                  "endIndex": 42, # End of the attributed segment, exclusive.
                                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                        { # Represents a single field in a struct.
                                          "name": "A String",
                                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                            "boolValue": True or False, # Represents a boolean value.
                                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                              "values": [ # Repeated field of dynamically typed values.
                                                # Object with schema name: GenaiVertexV1beta1Value
                                              ],
                                            },
                                            "nullValue": "A String", # Represents a null value.
                                            "numberValue": 3.14, # Represents a double value.
                                            "stringValue": "A String", # Represents a string value.
                                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                          },
                                        },
                                      ],
                                    },
                                    "documentUri": "A String", # The URI of the file.
                                    "fileName": "A String", # The name of the file.
                                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                    "pageNumber": 42, # Page number of the cited document, if applicable.
                                    "source": "A String", # Source attributed for a portion of the text.
                                  },
                                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                                    "name": "A String", # Title of the place.
                                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                        "reviewId": "A String", # The ID of the review snippet.
                                        "title": "A String", # Title of the review.
                                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                                      },
                                    ],
                                    "url": "A String", # URI reference of the place.
                                  },
                                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                  "urlCitation": { # A URL citation annotation. # 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.
                      "serverName": "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: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                    },
                    "signature": "A String", # A signature hash for backend validation.
                    "urlContextResult": { # URL context result content.
                      "isError": 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.
                    "mimeType": "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.
        "cachedTokensByModality": [ # 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.
          },
        ],
        "groundingToolCount": [ # 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.
          },
        ],
        "inputTokensByModality": [ # 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.
          },
        ],
        "outputTokensByModality": [ # 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.
          },
        ],
        "toolUseTokensByModality": [ # 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.
          },
        ],
        "totalCachedTokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
        "totalInputTokens": 42, # Number of tokens in the prompt (context).
        "totalOutputTokens": 42, # Total number of tokens across all the generated responses.
        "totalThoughtTokens": 42, # Number of tokens of thoughts for thinking models.
        "totalTokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
        "totalToolUseTokens": 42, # Number of tokens present in tool-use prompt(s).
      },
    },
  },
  "interactionStatusUpdate": { # The interaction status data, used for interaction.status_update events.
    "interactionId": "A String",
    "status": "A String",
  },
  "metadata": { # Optional metadata accompanying ANY streamed event.
    "totalUsage": { # Statistics on the interaction request's token usage.
      "cachedTokensByModality": [ # 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.
        },
      ],
      "groundingToolCount": [ # 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.
        },
      ],
      "inputTokensByModality": [ # 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.
        },
      ],
      "outputTokensByModality": [ # 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.
        },
      ],
      "toolUseTokensByModality": [ # 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.
        },
      ],
      "totalCachedTokens": 42, # Number of tokens in the cached part of the prompt (the cached content).
      "totalInputTokens": 42, # Number of tokens in the prompt (context).
      "totalOutputTokens": 42, # Total number of tokens across all the generated responses.
      "totalThoughtTokens": 42, # Number of tokens of thoughts for thinking models.
      "totalTokens": 42, # Total token count for the interaction request (prompt + responses + other internal tokens).
      "totalToolUseTokens": 42, # Number of tokens present in tool-use prompt(s).
    },
  },
  "stepDelta": { # The step delta data, used for step.delta events.
    "delta": {
      "argumentsDelta": {
        "arguments": "A String",
      },
      "audio": {
        "channels": 42, # The number of audio channels.
        "data": "A String",
        "mimeType": "A String",
        "rate": 42, # Deprecated. Use sample_rate instead. The value is ignored.
        "sampleRate": 42, # The sample rate of the audio.
        "uri": "A String",
      },
      "document": {
        "data": "A String",
        "mimeType": "A String",
        "uri": "A String",
      },
      "functionResult": {
        "contentList": { # A list of Content.
          "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.
                "mimeType": "A String", # The mime type of the audio.
                "sampleRate": 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.
                "mimeType": "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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                    ],
                  },
                  "searchType": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "serverName": "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.
                "callId": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result content.
                  "isError": 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "isError": 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                      ],
                      "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result content.
                  "isError": 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.
                      "searchSuggestions": "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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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.
                  "serverName": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result content.
                  "isError": 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.
                "mimeType": "A String", # The mime type of the video.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the video.
              },
            },
          ],
        },
        "isError": 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: GenaiVertexV1beta1Value
                  ],
                },
                "nullValue": "A String", # Represents a null value.
                "numberValue": 3.14, # Represents a double value.
                "stringValue": "A String", # Represents a string value.
                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
              },
            },
          ],
        },
      },
      "image": {
        "data": "A String",
        "mimeType": "A String",
        "resolution": "A String", # The resolution of the media.
        "uri": "A String",
      },
      "serverToolCall": {
        "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": {
        },
        "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",
            ],
          },
        },
        "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
          "name": "A String",
          "serverName": "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",
            ],
          },
        },
      },
      "serverToolResult": {
        "codeExecutionResult": {
          "isError": True or False,
          "result": "A String",
        },
        "fileSearchResult": {
          "result": [
            { # The result of the File Search.
            },
          ],
        },
        "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.
                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
              ],
              "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
            },
          ],
        },
        "googleSearchResult": {
          "isError": True or False,
          "result": [
            { # The result of the Google Search.
              "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
            },
          ],
        },
        "mcpServerToolResult": {
          "contentList": { # A list of Content.
            "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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "name": "A String",
          "serverName": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
        "signature": "A String", # A signature hash for backend validation.
        "urlContextResult": {
          "isError": 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.
            },
          ],
        },
      },
      "text": {
        "text": "A String",
      },
      "textAnnotationDelta": {
        "annotations": [ # Citation information for model-generated content.
          { # Citation information for model-generated content.
            "endIndex": 42, # End of the attributed segment, exclusive.
            "fileCitation": { # A file citation annotation. # A file citation annotation.
              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                  { # Represents a single field in a struct.
                    "name": "A String",
                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                      "boolValue": True or False, # Represents a boolean value.
                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                        "values": [ # Repeated field of dynamically typed values.
                          # Object with schema name: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "documentUri": "A String", # The URI of the file.
              "fileName": "A String", # The name of the file.
              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
              "pageNumber": 42, # Page number of the cited document, if applicable.
              "source": "A String", # Source attributed for a portion of the text.
            },
            "placeCitation": { # A place citation annotation. # A place citation annotation.
              "name": "A String", # Title of the place.
              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                  "reviewId": "A String", # The ID of the review snippet.
                  "title": "A String", # Title of the review.
                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                },
              ],
              "url": "A String", # URI reference of the place.
            },
            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
            "urlCitation": { # 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": { # The content of the response. # A new summary item to be added to the thought.
          "audio": { # An audio content block.
            "channels": 42, # The number of audio channels.
            "data": "A String", # The audio content.
            "mimeType": "A String", # The mime type of the audio.
            "sampleRate": 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.
            "mimeType": "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.
            "mimeType": "A String", # The mime type of the image.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the image.
          },
          "text": { # A text content block.
            "annotations": [ # Citation information for model-generated content.
              { # Citation information for model-generated content.
                "endIndex": 42, # End of the attributed segment, exclusive.
                "fileCitation": { # A file citation annotation. # A file citation annotation.
                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                      { # Represents a single field in a struct.
                        "name": "A String",
                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                          "boolValue": True or False, # Represents a boolean value.
                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                            "values": [ # Repeated field of dynamically typed values.
                              # Object with schema name: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "documentUri": "A String", # The URI of the file.
                  "fileName": "A String", # The name of the file.
                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                  "pageNumber": 42, # Page number of the cited document, if applicable.
                  "source": "A String", # Source attributed for a portion of the text.
                },
                "placeCitation": { # A place citation annotation. # A place citation annotation.
                  "name": "A String", # Title of the place.
                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String", # URI reference of the place.
                },
                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                "urlCitation": { # A URL citation annotation. # 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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                ],
              },
              "searchType": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
              "name": "A String", # Required. The name of the tool which was called.
              "serverName": "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.
            "callId": "A String", # Required. ID to match the ID from the function call block.
            "codeExecutionResult": { # Code execution result content.
              "isError": 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                            "title": "A String", # The title of the URL.
                            "url": "A String", # The URL.
                          },
                        },
                      ],
                      "text": "A String", # Required. The text content.
                    },
                  },
                ],
              },
              "isError": 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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                  ],
                  "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                },
              ],
            },
            "googleSearchResult": { # Google Search result content.
              "isError": 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.
                  "searchSuggestions": "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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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.
              "serverName": "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: GenaiVertexV1beta1Value
                        ],
                      },
                      "nullValue": "A String", # Represents a null value.
                      "numberValue": 3.14, # Represents a double value.
                      "stringValue": "A String", # Represents a string value.
                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                    },
                  },
                ],
              },
            },
            "signature": "A String", # A signature hash for backend validation.
            "urlContextResult": { # URL context result content.
              "isError": 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.
            "mimeType": "A String", # The mime type of the video.
            "resolution": "A String", # The resolution of the media.
            "uri": "A String", # The URI of the video.
          },
        },
      },
      "video": {
        "data": "A String",
        "mimeType": "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.
              "mimeType": "A String", # The mime type of the audio.
              "sampleRate": 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.
              "mimeType": "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.
              "mimeType": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "endIndex": 42, # End of the attributed segment, exclusive.
                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "documentUri": "A String", # The URI of the file.
                    "fileName": "A String", # The name of the file.
                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                    "pageNumber": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "urlCitation": { # A URL citation annotation. # 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                  ],
                },
                "searchType": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "serverName": "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.
              "callId": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "isError": 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "isError": 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "isError": 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.
                    "searchSuggestions": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                "serverName": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "isError": 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.
              "mimeType": "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.
          { # The content of the response.
            "audio": { # An audio content block.
              "channels": 42, # The number of audio channels.
              "data": "A String", # The audio content.
              "mimeType": "A String", # The mime type of the audio.
              "sampleRate": 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.
              "mimeType": "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.
              "mimeType": "A String", # The mime type of the image.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the image.
            },
            "text": { # A text content block.
              "annotations": [ # Citation information for model-generated content.
                { # Citation information for model-generated content.
                  "endIndex": 42, # End of the attributed segment, exclusive.
                  "fileCitation": { # A file citation annotation. # A file citation annotation.
                    "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                      "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                        { # Represents a single field in a struct.
                          "name": "A String",
                          "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                            "boolValue": True or False, # Represents a boolean value.
                            "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                              "values": [ # Repeated field of dynamically typed values.
                                # Object with schema name: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "documentUri": "A String", # The URI of the file.
                    "fileName": "A String", # The name of the file.
                    "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                    "pageNumber": 42, # Page number of the cited document, if applicable.
                    "source": "A String", # Source attributed for a portion of the text.
                  },
                  "placeCitation": { # A place citation annotation. # A place citation annotation.
                    "name": "A String", # Title of the place.
                    "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                    "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                      { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                        "reviewId": "A String", # The ID of the review snippet.
                        "title": "A String", # Title of the review.
                        "url": "A String", # A link that corresponds to the user review on Google Maps.
                      },
                    ],
                    "url": "A String", # URI reference of the place.
                  },
                  "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                  "urlCitation": { # A URL citation annotation. # 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.
                    "mimeType": "A String", # The mime type of the image.
                    "resolution": "A String", # The resolution of the media.
                    "uri": "A String", # The URI of the image.
                  },
                  "text": { # A text content block.
                    "annotations": [ # Citation information for model-generated content.
                      { # Citation information for model-generated content.
                        "endIndex": 42, # End of the attributed segment, exclusive.
                        "fileCitation": { # A file citation annotation. # A file citation annotation.
                          "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                            "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                              { # Represents a single field in a struct.
                                "name": "A String",
                                "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                  "boolValue": True or False, # Represents a boolean value.
                                  "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                    "values": [ # Repeated field of dynamically typed values.
                                      # Object with schema name: GenaiVertexV1beta1Value
                                    ],
                                  },
                                  "nullValue": "A String", # Represents a null value.
                                  "numberValue": 3.14, # Represents a double value.
                                  "stringValue": "A String", # Represents a string value.
                                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                },
                              },
                            ],
                          },
                          "documentUri": "A String", # The URI of the file.
                          "fileName": "A String", # The name of the file.
                          "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                          "pageNumber": 42, # Page number of the cited document, if applicable.
                          "source": "A String", # Source attributed for a portion of the text.
                        },
                        "placeCitation": { # A place citation annotation. # A place citation annotation.
                          "name": "A String", # Title of the place.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                        "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                        "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                  ],
                },
                "searchType": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
                "name": "A String", # Required. The name of the tool which was called.
                "serverName": "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.
              "callId": "A String", # Required. ID to match the ID from the function call block.
              "codeExecutionResult": { # Code execution result content.
                "isError": 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                              "title": "A String", # The title of the URL.
                              "url": "A String", # The URL.
                            },
                          },
                        ],
                        "text": "A String", # Required. The text content.
                      },
                    },
                  ],
                },
                "isError": 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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                    ],
                    "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                  },
                ],
              },
              "googleSearchResult": { # Google Search result content.
                "isError": 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.
                    "searchSuggestions": "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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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.
                "serverName": "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: GenaiVertexV1beta1Value
                          ],
                        },
                        "nullValue": "A String", # Represents a null value.
                        "numberValue": 3.14, # Represents a double value.
                        "stringValue": "A String", # Represents a string value.
                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                      },
                    },
                  ],
                },
              },
              "signature": "A String", # A signature hash for backend validation.
              "urlContextResult": { # URL context result content.
                "isError": 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.
              "mimeType": "A String", # The mime type of the video.
              "resolution": "A String", # The resolution of the media.
              "uri": "A String", # The URI of the video.
            },
          },
        ],
      },
      "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
            ],
          },
          "searchType": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
          "name": "A String", # Required. The name of the tool which was called.
          "serverName": "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.
        "callId": "A String", # Required. ID to match the ID from the function call block.
        "codeExecutionResult": { # Code execution result step.
          "isError": 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": { # A list of Content.
            "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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "isError": 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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
        "googleMapsResult": { # Google Maps result step.
          "result": [
            { # The result of the Google Maps.
              "places": [
                {
                  "name": "A String",
                  "placeId": "A String",
                  "reviewSnippets": [
                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                      "reviewId": "A String", # The ID of the review snippet.
                      "title": "A String", # Title of the review.
                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                    },
                  ],
                  "url": "A String",
                },
              ],
              "widgetContextToken": "A String",
            },
          ],
        },
        "googleSearchResult": { # Google Search result step.
          "isError": 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.
              "searchSuggestions": "A String", # Web content snippet that can be embedded in a web page or an app webview.
            },
          ],
        },
        "mcpServerToolResult": { # MCPServer tool result step.
          "contentList": { # A list of Content.
            "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.
                  "mimeType": "A String", # The mime type of the audio.
                  "sampleRate": 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.
                  "mimeType": "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.
                  "mimeType": "A String", # The mime type of the image.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the image.
                },
                "text": { # A text content block.
                  "annotations": [ # Citation information for model-generated content.
                    { # Citation information for model-generated content.
                      "endIndex": 42, # End of the attributed segment, exclusive.
                      "fileCitation": { # A file citation annotation. # A file citation annotation.
                        "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                          "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                            { # Represents a single field in a struct.
                              "name": "A String",
                              "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                "boolValue": True or False, # Represents a boolean value.
                                "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                  "values": [ # Repeated field of dynamically typed values.
                                    # Object with schema name: GenaiVertexV1beta1Value
                                  ],
                                },
                                "nullValue": "A String", # Represents a null value.
                                "numberValue": 3.14, # Represents a double value.
                                "stringValue": "A String", # Represents a string value.
                                "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                              },
                            },
                          ],
                        },
                        "documentUri": "A String", # The URI of the file.
                        "fileName": "A String", # The name of the file.
                        "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                        "pageNumber": 42, # Page number of the cited document, if applicable.
                        "source": "A String", # Source attributed for a portion of the text.
                      },
                      "placeCitation": { # A place citation annotation. # A place citation annotation.
                        "name": "A String", # Title of the place.
                        "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                        "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                          { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                            "reviewId": "A String", # The ID of the review snippet.
                            "title": "A String", # Title of the review.
                            "url": "A String", # A link that corresponds to the user review on Google Maps.
                          },
                        ],
                        "url": "A String", # URI reference of the place.
                      },
                      "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                      "urlCitation": { # A URL citation annotation. # 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.
                        "mimeType": "A String", # The mime type of the image.
                        "resolution": "A String", # The resolution of the media.
                        "uri": "A String", # The URI of the image.
                      },
                      "text": { # A text content block.
                        "annotations": [ # Citation information for model-generated content.
                          { # Citation information for model-generated content.
                            "endIndex": 42, # End of the attributed segment, exclusive.
                            "fileCitation": { # A file citation annotation. # A file citation annotation.
                              "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                  { # Represents a single field in a struct.
                                    "name": "A String",
                                    "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                      "boolValue": True or False, # Represents a boolean value.
                                      "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                        "values": [ # Repeated field of dynamically typed values.
                                          # Object with schema name: GenaiVertexV1beta1Value
                                        ],
                                      },
                                      "nullValue": "A String", # Represents a null value.
                                      "numberValue": 3.14, # Represents a double value.
                                      "stringValue": "A String", # Represents a string value.
                                      "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                    },
                                  },
                                ],
                              },
                              "documentUri": "A String", # The URI of the file.
                              "fileName": "A String", # The name of the file.
                              "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                              "pageNumber": 42, # Page number of the cited document, if applicable.
                              "source": "A String", # Source attributed for a portion of the text.
                            },
                            "placeCitation": { # A place citation annotation. # A place citation annotation.
                              "name": "A String", # Title of the place.
                              "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                              "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                  "reviewId": "A String", # The ID of the review snippet.
                                  "title": "A String", # Title of the review.
                                  "url": "A String", # A link that corresponds to the user review on Google Maps.
                                },
                              ],
                              "url": "A String", # URI reference of the place.
                            },
                            "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                            "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                      ],
                    },
                    "searchType": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                    "name": "A String", # Required. The name of the tool which was called.
                    "serverName": "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.
                  "callId": "A String", # Required. ID to match the ID from the function call block.
                  "codeExecutionResult": { # Code execution result content.
                    "isError": 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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                  "title": "A String", # The title of the URL.
                                  "url": "A String", # The URL.
                                },
                              },
                            ],
                            "text": "A String", # Required. The text content.
                          },
                        },
                      ],
                    },
                    "isError": 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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                        ],
                        "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                      },
                    ],
                  },
                  "googleSearchResult": { # Google Search result content.
                    "isError": 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.
                        "searchSuggestions": "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.
                            "mimeType": "A String", # The mime type of the image.
                            "resolution": "A String", # The resolution of the media.
                            "uri": "A String", # The URI of the image.
                          },
                          "text": { # A text content block.
                            "annotations": [ # Citation information for model-generated content.
                              { # Citation information for model-generated content.
                                "endIndex": 42, # End of the attributed segment, exclusive.
                                "fileCitation": { # A file citation annotation. # A file citation annotation.
                                  "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                    "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                      { # Represents a single field in a struct.
                                        "name": "A String",
                                        "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                          "boolValue": True or False, # Represents a boolean value.
                                          "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                            "values": [ # Repeated field of dynamically typed values.
                                              # Object with schema name: GenaiVertexV1beta1Value
                                            ],
                                          },
                                          "nullValue": "A String", # Represents a null value.
                                          "numberValue": 3.14, # Represents a double value.
                                          "stringValue": "A String", # Represents a string value.
                                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                        },
                                      },
                                    ],
                                  },
                                  "documentUri": "A String", # The URI of the file.
                                  "fileName": "A String", # The name of the file.
                                  "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                  "pageNumber": 42, # Page number of the cited document, if applicable.
                                  "source": "A String", # Source attributed for a portion of the text.
                                },
                                "placeCitation": { # A place citation annotation. # A place citation annotation.
                                  "name": "A String", # Title of the place.
                                  "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                  "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                    { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                      "reviewId": "A String", # The ID of the review snippet.
                                      "title": "A String", # Title of the review.
                                      "url": "A String", # A link that corresponds to the user review on Google Maps.
                                    },
                                  ],
                                  "url": "A String", # URI reference of the place.
                                },
                                "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                                "urlCitation": { # A URL citation annotation. # 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.
                    "serverName": "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: GenaiVertexV1beta1Value
                              ],
                            },
                            "nullValue": "A String", # Represents a null value.
                            "numberValue": 3.14, # Represents a double value.
                            "stringValue": "A String", # Represents a string value.
                            "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                          },
                        },
                      ],
                    },
                  },
                  "signature": "A String", # A signature hash for backend validation.
                  "urlContextResult": { # URL context result content.
                    "isError": 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.
                  "mimeType": "A String", # The mime type of the video.
                  "resolution": "A String", # The resolution of the media.
                  "uri": "A String", # The URI of the video.
                },
              },
            ],
          },
          "name": "A String", # Name of the tool which is called for this specific tool call.
          "serverName": "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: GenaiVertexV1beta1Value
                    ],
                  },
                  "nullValue": "A String", # Represents a null value.
                  "numberValue": 3.14, # Represents a double value.
                  "stringValue": "A String", # Represents a string value.
                  "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                },
              },
            ],
          },
        },
        "signature": "A String", # A signature hash for backend validation.
        "urlContextResult": { # URL context result step.
          "isError": 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. # DO NOT USE -- These are for 3P JSON only
        "contentList": { # A list of Content. # The content of the step. 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.
                "mimeType": "A String", # The mime type of the audio.
                "sampleRate": 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.
                "mimeType": "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.
                "mimeType": "A String", # The mime type of the image.
                "resolution": "A String", # The resolution of the media.
                "uri": "A String", # The URI of the image.
              },
              "text": { # A text content block.
                "annotations": [ # Citation information for model-generated content.
                  { # Citation information for model-generated content.
                    "endIndex": 42, # End of the attributed segment, exclusive.
                    "fileCitation": { # A file citation annotation. # A file citation annotation.
                      "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                        "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                          { # Represents a single field in a struct.
                            "name": "A String",
                            "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                              "boolValue": True or False, # Represents a boolean value.
                              "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                "values": [ # Repeated field of dynamically typed values.
                                  # Object with schema name: GenaiVertexV1beta1Value
                                ],
                              },
                              "nullValue": "A String", # Represents a null value.
                              "numberValue": 3.14, # Represents a double value.
                              "stringValue": "A String", # Represents a string value.
                              "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                            },
                          },
                        ],
                      },
                      "documentUri": "A String", # The URI of the file.
                      "fileName": "A String", # The name of the file.
                      "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                      "pageNumber": 42, # Page number of the cited document, if applicable.
                      "source": "A String", # Source attributed for a portion of the text.
                    },
                    "placeCitation": { # A place citation annotation. # A place citation annotation.
                      "name": "A String", # Title of the place.
                      "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                      "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                        { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                          "reviewId": "A String", # The ID of the review snippet.
                          "title": "A String", # Title of the review.
                          "url": "A String", # A link that corresponds to the user review on Google Maps.
                        },
                      ],
                      "url": "A String", # URI reference of the place.
                    },
                    "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                    "urlCitation": { # A URL citation annotation. # 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.
                      "mimeType": "A String", # The mime type of the image.
                      "resolution": "A String", # The resolution of the media.
                      "uri": "A String", # The URI of the image.
                    },
                    "text": { # A text content block.
                      "annotations": [ # Citation information for model-generated content.
                        { # Citation information for model-generated content.
                          "endIndex": 42, # End of the attributed segment, exclusive.
                          "fileCitation": { # A file citation annotation. # A file citation annotation.
                            "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                              "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                { # Represents a single field in a struct.
                                  "name": "A String",
                                  "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                    "boolValue": True or False, # Represents a boolean value.
                                    "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                      "values": [ # Repeated field of dynamically typed values.
                                        # Object with schema name: GenaiVertexV1beta1Value
                                      ],
                                    },
                                    "nullValue": "A String", # Represents a null value.
                                    "numberValue": 3.14, # Represents a double value.
                                    "stringValue": "A String", # Represents a string value.
                                    "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                  },
                                },
                              ],
                            },
                            "documentUri": "A String", # The URI of the file.
                            "fileName": "A String", # The name of the file.
                            "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                            "pageNumber": 42, # Page number of the cited document, if applicable.
                            "source": "A String", # Source attributed for a portion of the text.
                          },
                          "placeCitation": { # A place citation annotation. # A place citation annotation.
                            "name": "A String", # Title of the place.
                            "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                            "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                              { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                "reviewId": "A String", # The ID of the review snippet.
                                "title": "A String", # Title of the review.
                                "url": "A String", # A link that corresponds to the user review on Google Maps.
                              },
                            ],
                            "url": "A String", # URI reference of the place.
                          },
                          "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                          "urlCitation": { # A URL citation annotation. # 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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",
                    ],
                  },
                  "searchType": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                  "name": "A String", # Required. The name of the tool which was called.
                  "serverName": "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.
                "callId": "A String", # Required. ID to match the ID from the function call block.
                "codeExecutionResult": { # Code execution result content.
                  "isError": 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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # A URL citation annotation.
                                "title": "A String", # The title of the URL.
                                "url": "A String", # The URL.
                              },
                            },
                          ],
                          "text": "A String", # Required. The text content.
                        },
                      },
                    ],
                  },
                  "isError": 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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # 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.
                          "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                          "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                            { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                              "reviewId": "A String", # The ID of the review snippet.
                              "title": "A String", # Title of the review.
                              "url": "A String", # A link that corresponds to the user review on Google Maps.
                            },
                          ],
                          "url": "A String", # URI reference of the place.
                        },
                      ],
                      "widgetContextToken": "A String", # Resource name of the Google Maps widget context token.
                    },
                  ],
                },
                "googleSearchResult": { # Google Search result content.
                  "isError": 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.
                      "searchSuggestions": "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.
                          "mimeType": "A String", # The mime type of the image.
                          "resolution": "A String", # The resolution of the media.
                          "uri": "A String", # The URI of the image.
                        },
                        "text": { # A text content block.
                          "annotations": [ # Citation information for model-generated content.
                            { # Citation information for model-generated content.
                              "endIndex": 42, # End of the attributed segment, exclusive.
                              "fileCitation": { # A file citation annotation. # A file citation annotation.
                                "customMetadata": { # `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. # User provided metadata about the retrieved context.
                                  "fields": [ # Dynamically typed fields. List instead of map because LLMs are sensitive to ordering, and we want to give users full control.
                                    { # Represents a single field in a struct.
                                      "name": "A String",
                                      "value": { # `Value` represents a dynamically typed value which can be either null, a number, a string, a boolean, a recursive struct value, or a list of values. A producer of value is expected to set one of these variants. Absence of any variant indicates an error.
                                        "boolValue": True or False, # Represents a boolean value.
                                        "listValue": { # `ListValue` is a wrapper around a repeated field of values. # Represents a repeated `Value`.
                                          "values": [ # Repeated field of dynamically typed values.
                                            # Object with schema name: GenaiVertexV1beta1Value
                                          ],
                                        },
                                        "nullValue": "A String", # Represents a null value.
                                        "numberValue": 3.14, # Represents a double value.
                                        "stringValue": "A String", # Represents a string value.
                                        "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                                      },
                                    },
                                  ],
                                },
                                "documentUri": "A String", # The URI of the file.
                                "fileName": "A String", # The name of the file.
                                "mediaId": "A String", # Media ID in-case of image citations, if applicable.
                                "pageNumber": 42, # Page number of the cited document, if applicable.
                                "source": "A String", # Source attributed for a portion of the text.
                              },
                              "placeCitation": { # A place citation annotation. # A place citation annotation.
                                "name": "A String", # Title of the place.
                                "placeId": "A String", # The ID of the place, in `places/{place_id}` format.
                                "reviewSnippets": [ # Snippets of reviews that are used to generate answers about the features of a given place in Google Maps.
                                  { # Encapsulates a snippet of a user review that answers a question about the features of a specific place in Google Maps.
                                    "reviewId": "A String", # The ID of the review snippet.
                                    "title": "A String", # Title of the review.
                                    "url": "A String", # A link that corresponds to the user review on Google Maps.
                                  },
                                ],
                                "url": "A String", # URI reference of the place.
                              },
                              "startIndex": 42, # Start of segment of the response that is attributed to this source. Index indicates the start of the segment, measured in bytes.
                              "urlCitation": { # A URL citation annotation. # 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.
                  "serverName": "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: GenaiVertexV1beta1Value
                            ],
                          },
                          "nullValue": "A String", # Represents a null value.
                          "numberValue": 3.14, # Represents a double value.
                          "stringValue": "A String", # Represents a string value.
                          "structValue": # Object with schema name: GenaiVertexV1beta1Struct # Represents a structured value.
                        },
                      },
                    ],
                  },
                },
                "signature": "A String", # A signature hash for backend validation.
                "urlContextResult": { # URL context result content.
                  "isError": 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.
                "mimeType": "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 step. A single string.
      },
    },
  },
  "stepStop": { # The step stop data, used for step.stop events.
    "index": 42,
  },
}